集合是一个无序的,不重复的数据组合,作用如下:
1.去重,把一个列表变成集合,就自动去重了
2.关系测试,测试两组数据之前的交集、差集、并集等关系
创建集合
>>> a = [1, 3, 5, 3] >>> b = set(a) >>> b {1, 3, 5}
交集
intersection 或 &
>>> a = set([1, 3, 5, 7]) >>> b = set([3, 9, 11]) >>> a.intersection(b) {3} >>> a & b {3}
并集
union 或 |
>>> a = set([1, 3, 5, 7]) >>> b = set([3, 9, 11]) >>> a.union(b) {1, 3, 5, 7, 9, 11} >>> a | b {1, 3, 5, 7, 9, 11}
差集
difference 或 -
>>> a = set([1, 3, 5, 7]) >>> b = set([3, 9, 11]) >>> a.difference(b) {1, 5, 7} >>> a - b {1, 5, 7}
对称差集(并集-差集)
symmetric_difference 或 ^
>>> a = set([1, 3, 5, 7])
>>> b = set([3, 9, 11])
>>> a.symmetric_difference(b)
{1, 5, 7, 9, 11}
是否是另一个的子集超集
issubset issuperset
>>> a = set([1, 3, 5, 7]) >>> b = set([3, 9, 11]) >>> a.issubset(b) False >>> a.issuperset(b) False >>> c = set([1, 7]) >>> c.issubset(a) True >>> a.issuperset(c) True
两者是否无交集
isdisjoint
>>> a = set([1, 3, 5, 7]) >>> b = set([3, 9, 11]) >>> a.isdisjoint(b) False >>> d = set([2, 4, 6, 8]) >>> a.isdisjoint(d) True
基本操作
增
add
>>> a = set([1, 3, 5, 7]) >>> a.add('yes') >>> a {1, 3, 5, 'yes', 7}
删
remove
>>> a = set([1, 3, 5, 7]) >>> a.remove(1) >>> a {3, 5, 7}
pop 随机删除
>>> a = set([1, 3, 5, 7]) >>> a.pop() 1 >>> a {3, 5, 7}
discard 删除一个指定值,如果集合中没有不做任何操作
>>> a = set([1, 3, 5, 7]) >>> a.discard(8) >>> a {1, 3, 5, 7} >>> a.discard(5) >>> a {1, 3, 7}
改
update
>>> a = set([1, 3, 5, 7]) >>> a.update([2, 4, 6, 8]) >>> a {1, 2, 3, 4, 5, 6, 7, 8}