python中set集合详解
来源:互联网 发布:黑蜘蛛软件 编辑:程序博客网 时间:2024/04/29 20:46
一、集合的创建
set()和 frozenset()工厂函数分别用来生成可变和不可变的集合。如果不提供任何参数,默认会生成空集合。如果提供一个参数,则该参数必须是可迭代的,即,一个序列,或迭代器,或支持
迭代的一个对象,例如:一个列表或一个字典。
>>> s=set('cheeseshop') 使用工厂方法创建 >>> type(s) <type 'set'> >>> s={'chessseshop','bookshop'}直接创建,类似于list的[]和dict的{},不同于dict的是其中的值,set会将其中的元素转换为元组 >>> s {'bookshop', 'chessseshop'} >>> type(s) <type 'set'>
不可变集合创建:
>>> t=frozenset('bookshop') >>> t frozenset({'h', 'o', 's', 'b', 'p', 'k'})
二、更新可变集合
用各种集合内建的方法和操作符添加和删除集合的成员:
>>> s.add('z') #添加 >>> s set(['c', 'e', 'h', 'o', 'p', 's', 'z']) >>> s set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y', 'z']) >>> s.remove('z') #删除 >>> s -= set('pypi')#删除 >>> del s #删除集合
只有可变集合能被修改。试图修改不可变集合会引发异常。
三、成员关系 (in, not in)
四、集合等价/不等价
>>> s == t False >>> s != t True >>> u = frozenset(s) >>>> s == u True >>>> set('posh') == set('shop') True
五、子集/超集
>>> set('shop') < set('cheeseshop') True >>> set('bookshop') >= set('shop') True
六、遍历访问集合中的值(可变集合和非可变都支持)
>>> s=set('cheeseshop') >>> s {'h', 'c', 'o', 's', 'e', 'p'} >>> for i in s: print(i) h c o e p >>> t=frozenset('bookshop') >>> t frozenset({'h', 'o', 's', 'b', 'p', 'k'}) >>> for i in t: print(i) h o b p k
七、集合类型操作符(所有的集合类型)
1.联合( | )
2.交集( & )
3.差补/相对补集( – )
4.对称差分( ^ ):两个集合(s 和 t)的对称差分是指另外一个集合 C,该集合中的元素,只能是属于集合 s 或者集合 t 的成员,不能同时属于两个集合。对称差分有一个等价的方法,symmetric_difference().
5.混合集合类型操作
上面的示例中,左边的 s 是可变集合,而右边的 t 是一个不可变集合. 注意上面使用集合操作 运算符所产生的仍然是可变集合,但是如果左右操作数的顺序反过来,结果就不一样了。如果左右两个操作数的类型相同, 既都是可变集合或不可变集合, 则所产生的结果类型是相同的,但如果左右两个操作数的类型不相同(左操作数是 set,右操作数是 frozenset,或相反情况),则所产生的结果类型与左操作数的类型相同。
0 0
- python中set集合详解
- Python的set集合详解
- python中set集合用法
- Python中set(集合)的用法
- python学习笔记(17)--集合(set)详解
- python集合set操作
- Python 集合set
- python集合set操作
- Python 集合 set
- python 集合 set
- python set集合
- Python之集合(set)
- Python 集合set
- python set集合
- python set(集合)数据结构
- Python的集合set
- python:集合(set)
- python set集合操作
- lcd1602液晶显示器
- Matlab caffe 具体使用方法
- Android消息通知PendingIntent传递参数出问题
- 求两个多边形数据 vtkPolyData 的相交线
- linux命令(19):locate
- python中set集合详解
- Jquery复习
- jQuery树插件zTree.js如何应用后台返回的不标准数据
- Vi编辑器的基本使用方法!
- 程序使用场合
- Linux中zip压缩和unzip解压缩命令详解
- iOS tableView的Cell的使用方式
- SVN问题:请求的名称有效,但是找不到请求的类型的数据
- 性能分析工具之-- Eclipse Memory Analyzer tool(MAT)(三)