集合的操作

集合是一个无序的,不重复的数据组合,作用如下:

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}
原文地址:https://www.cnblogs.com/allenzhang-920/p/8619680.html