(Python)集合、集合的函数
本节我们将学习python的另一种数据类型:集合(set)
1.集合(set)
集合在Python中是一种没有重复元素,且无序的数据类型,且不能通过索引来引用集合中的元素
>>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
>>> set(basket)
set(['orange', 'pear', 'apple', 'banana'])
set1-set2来获得在set1中的元素在set2中不存在的元素,返回一个新的集合。该功能和set1.difference(set2)的效果一样

>>> f=set([1,2,3,4,5])
>>> c=set([3,4,5,6])
>>> f.difference(c)
set([1, 2])
>>> list(f)
[1, 2, 3, 4, 5]
>>> f-c
set([1, 2])
set1|set2 获得在set1或set2中的元素,返回一个新的集合

>>> f=set([1,2,3,4,5])
>>> c=set([3,4,5,6])
>>> f|c
set([1, 2, 3, 4, 5, 6])
set1&set2 获得在set1和set2中均存在的元素,返回一个新的集合

>>> f=set([1,2,3,4,5])
>>> c=set([3,4,5,6])
>>> f&c
set([3, 4, 5])
set1^set2 获得在set1或set2中存在,但不包括在set1和set2中都存在的元素,返回一个新的集合

>>> f=set([1,2,3,4,5])
>>> c=set([3,4,5,6])
>>> f^c
set([1, 2, 6])
2.集合的函数
set.add(x) 新增一个元素x,如果集合中已经存在x,则不会新增到集合中
>>> f=set([3,4,5,6])
>>> f.add('a')
>>> f
set(['a', 3, 4, 5, 6])
>>> f.add('a')
>>> f
set(['a', 3, 4, 5, 6])
set.clear()清空集合
>>> f=set([3,4,5,6])
>>> f.clear()
>>> f
set([])
set.copy()复制一个集合
>>> f=set([3,4,5,6])
>>> s=f.copy()
>>> s
set([3, 4, 5, 6])
set1.difference(set2) 获得在set1中的元素在set2中不存在的元素,返回一个新的集合.与set1-set2相同
>>> f=set([3,4,5,6])
>>> s=set([1,2,3,4,5])
>>> s.difference(f)
set([1, 2])
set1.difference_update(set2) 更新set1,使set1=set1-set2
>>> s=set([1,2,3,4,5])
>>> s.difference_update(f)
>>> s
set([1, 2])
set.discard(x) 删除集合中值为x的元素
>>> s=set([1,2,3,4,5])
>>> s.discard(3)
>>> s
set([1, 2, 4, 5])
set1.intersection(set2) 返回set1和set2中均存在的元素,与set1&set2的效果相同
>>> f=set([3,4,5,6])
>>> s=set([1,2,3,4,5])
>>> f.intersection(s)
set([3, 4, 5])
set1.intersection_update(set2) 更新set1,使set1等于set1^set2
>>> f=set([3,4,5,6])
>>> s=set([1,2,3,4,5])
>>> f.intersection_update(s)
>>> f
set([3, 4, 5])
set1.isdisjoint(set2) 判断set1与set2是否有相同的元素,如果有,返回false,没有返回true
>>> f=set([3,4,5,6])
>>> s=set([1,2,3,4,5])
>>> q=set([1,0])
>>> f.isdisjoint(s)
False
>>> f.isdisjoint(q)
True
set1.issubset(set2)判断set1是否是set2的子集,如果是,返回true,否则返回false
>>> f=set([1,2])
>>> q=set([3,4,5,6,7])
>>> s=set([1,2,3,4,5])
>>> f.issubset(q)
False
>>> f.issubset(s)
True
set1.issuperset(set2)判断set1是否包含了set2,即set2是否是set1的子集,如果是,返回true,否则返回false
>>> f=set([1,2])
>>> s=set([1,2,3,4,5])
>>> f.issuperset(s)
False
>>> s.issuperset(f)
True
set.pop() 删除集合中排序最小的元素,并返回该数
>>> s=set([3,4,2,1,3])
>>> s.pop()
1
set.remove(x)删除集合中值为x的元素,如果x不存在,则会引发一个错误
>>> s=set([3,4,2,1,3])
>>> s.remove(3)
>>> s
set([1, 2, 4])
>>> s.remove(10) Traceback (most recent call last):
File "<pyshell#347>", line 1, in <module>
s.remove(10)
KeyError: 10
set1.symmetric_difference(set2),取set1和set2中不同时存在的元素,组成一个新的集合,并返回,同set1^set2相同
>>> s=set([1,2,4])
>>> f=set([2,4,5,6])
>>> f.symmetric_difference(s)
set([1, 5, 6])
set1.symmetric_difference_update(set2),更新set1,使set1=set1^set2
>>> s=set([1,2,4])
>>> f=set([2,4,5,6])
>>> f.symmetric_difference_update(s)
>>> f
set([1, 5, 6])
set1.union(set2) 取set1与set2的元素,组成一个新的集合,并返回,同:set1|set2
>>> s=set([1,2,4])
>>> f=set([2,4,5,6])
>>> s.union(f)
set([1, 2, 4, 5, 6])
set1.update(set2) 更新set1,使set1=set1|set2
>>> s=set([1,2,4])
>>> f=set([2,4,5,6])
>>> s.update(f)
>>> s
set([1, 2, 4, 5, 6])
(Python)集合、集合的函数的更多相关文章
- python_way,day3 集合、函数、三元运算、lambda、python的内置函数、字符转换、文件处理
python_way,day3 一.集合 二.函数 三.三元运算 四.lambda 五.python的内置函数 六.字符转换 七.文件处理 一.集合: 1.集合的特性: 特性:无序,不重复的序列 如果 ...
- Python 集合内置函数大全(非常全!)
Python集合内置函数操作大全 集合(s).方法名 等价符号 方法说明 s.issubset(t) s <= t 子集测试(允许不严格意义上的子集):s 中所有的元素都是 t 的成员 s ...
- 跟着ALEX 学python day3集合 文件操作 函数和函数式编程 内置函数
声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/ 一. 集合 集合是一个无序的,不重复的数据组合,主要作用如下 1.去重 把一个列表变成集合 ,就自动去重 ...
- Python学习基础(二)——集合 深浅拷贝 函数
集合 # 集合 ''' 集合是无序不重复的 ''' # 创建列表 l = list((1, 1, 1)) l1 = [1, 1, 1] print(l) print(l1) print("* ...
- [python]set集合学习
python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和 ...
- python——序列 & 集合 & 映射
列表 & 元组 & 字典 & 集合 序列 序列: 每个元素可以是任何类型(也可以是序列),每个元素被分配一个序号(从0开始)(序号,也叫索引,表示元素的位置) Python中的 ...
- Python的集合
1. Python的集合 1.1 集合的定义 在Python中, 集合set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.Python中的集合set类 ...
- Python中集合set()的使用及处理
在Python中集合(set)与字典(dict)比较相似,都具有无序以及元素不能重复的特点 1.创建set 创建set需要一个list或者tuple或者dict作为输入集合 重复的元素在set中会被自 ...
- Python的集合和元组
一.元组 元组也是一个list,但它的值不能改变 Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号 ...
- Python:集合操作总结
集合是一组无序排列的不重复元素集 [注]:集合的最大作用是对一个序列进行去重操作 一.集合的分类 在Python中集合分为两类,为可变集合(set)和不可变集合(frozenset).对于可变集合(s ...
随机推荐
- js--使用构造器函数来新建对象及操作
通过new操作符来调用函数,来达到访问对象this值得目的,构造器将其创建的对象返回给我们. 直接上代码 //创建构造器函数 function Gadget(name, color){ this.na ...
- xcode 打静态库.a文件
原文地址:http://blog.csdn.net/pjk1129/article/details/7255163 核心命令:lipo -info 地址.查看支持的类型,如armv7 lipo -cr ...
- Git服务器、http协议及XCode
本来费了老鼻子牛劲搭好了SVN,可以通过web进行访问,也弄好了eclipse和XCode,结果几个开发的同事说要上git,悲了个催,又开始折腾git. 因为公司只有一个公网的http出口,因此开始了 ...
- Android 多点触控与简单手势(一)
现在一般的Android手机都会使用电容触摸屏最少可以支持两点触摸,多的可能是七八个,所以基本上都会支持多点触控, android系统中应用程序可以使用多点触控的事件来完成各种手势和场景需求. And ...
- 华为OJ题目:扑克牌大小
题目描述: 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A.2各4张,小王1张,大王1张.牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王):3 ...
- Consuming a Web Service in AX 2012
Consuming a Web Service in AX 2012 在AX2012版本中如果想调用外部的Web Service变得非常容易. 第一步,在VS中创建一个Web Service并发布 第 ...
- ubuntu 13.04 lighttped mysql php
apt-get update sudo apt-get install lighttpd php5-cgi Enable the fastcgi module and the php configur ...
- PHP超时处理全面总结
[ 概述 ] 在PHP开发中工作里非常多使用到超时处理到超时的场合,我说几个场景: 1. 异步获取数据如果某个后端数据源获取不成功则跳过,不影响整个页面展现 2. 为了保证Web服务器不会因为当个页面 ...
- PHP&MySQL 语法
PHP操作MySQL数据库 第一步:连接数据库 $dbhost = 'localhost:3306'; //mysql服务器主机地址 $dbuser = 'guest'; //mysql用户名 $db ...
- 关于rand()与srand()函数
rand函数功能为获取一个伪随机数(伪随机数的概念下面会有介绍). 一.函数名: rand(); 二.声明: int rand(); 三.所在头文件: stdlib.h 四.功能: 返回一个伪随机数. ...