集合中的元素没有重复的无序的,集合会自动排列里面的值。
创建集合的唯一方法是用工厂方法set()、frozenset(),参数必须是可迭代的,例如序列或迭代器
方式一、s=set('cheese')
s -> set(['c','e','h','s']) len(s)=4
方式二、t=frozenset('book')
t -> frozenset(['b','o','k'])
对于的两种集合类型要一样 | in/not | 是..的成员 | 'e' in set(['c','e']) |
== | 等于 | set('posh')==set('shop') | |
!= | 不等于 | ||
< | 是...的子集 | ||
<= | 是...的子集 | ||
> | 是...的超集 | ||
>= | 是...的超集 | set('bookshop')>=set('shop') | |
如果左右两个操作数类型相同,即结果类型也相同 若左右两个操作数类型不同,结果与左操作数类型相同 |
& | 交集 | s&t |
| | 合集 | s|t -> set([c','e','h','s','b','o','k']) | |
- | 差补 | s-t (该集合中的元素只属于s,不属于t) | |
^ | 对称差分 | s^t (该集合中的元素只属于s,或只属于t,不同时属于两者) | |
可变集合的操作 | s.add() | 添加元素 | s.add('z') |
s.update() 或 |= | 更新元素 | s.update('abc') s|=set('pypi') | |
s.intersection_update(t) | |||
s.difference_update(t) | |||
s.symmetric_difference_update(t) | |||
s.remove() | 移除元素 | s.remove('z') | |
s.discard(obj) | 如果obj是集合s的元素,从集合s中删除 | ||
s.pop() | 删除集合s中任意一个对象,并返回它 | ||
s.clear() | 删除集合s中的所有元素 | ||
内建函数 | s.issubset(t) | 如果s是t的子集,则返回True,否则返回False | |
s.issuperset(t) | 如果t是s的超集,则返回True,否则返回False | ||
s.union(t) | 返回s和t的并集 | ||
s.intersection(t) | 返回s和t的交集 | ||
s.difference(t) | 返回是s的成员不是t的成员的集合 | ||
s.symmetric_difference(t) | 返回不是s和t共有的成员 | ||
s.copy() | 返回s的浅复制集合 |
集合的相关模块:
Set或ImmuteablSet