5.5 集合定义和使用

5.5.1 集合定义

Python中的集合是一组key的集合,其中无重复的key。重复的元素被自动过滤掉。

>>> var = {'abc', 123, 'def', 'abc'}
>>> var
{123, 'abc', 'def'}
>>> type(var)
<class 'set'>

5.5.2 集合函数

成员检测使用in,not in来进行:

>>> 'abc' in var
True
>>> 456 in var
False

向集合中添加元素可以使用add函数,注意集合的无序性:

>>> var.add('ghi')
>>> var
{'ghi', 123, 'def', 'abc'}

删除元素有几种方法:

pop:随机删除集合中的一个元素:

>>> var.pop()
'ghi'
>>> var
{123, 'def', 'abc'}

remove:删除集合中指定的元素,删除不存在的元素会报错。

discard:删除集合中指定的元素,删除不存在的元素啥都不做。

>>> var.remove(123)
>>> var
{'def', 'abc'}
>>> var.discard(123)
>>> var
{'def', 'abc'}

clear:清空集合。

>>> var.clear()
>>> var
set()

5.5.3 数学集合操作

集合对象也支持像联合,交集,差集,对称差分等数学运算。

&:交集

|:并集

-:集合的差

>>> s1 = set('abracadabra')
>>> s2 = set('alacazam')
>>> s1
{'r', 'b', 'c', 'a', 'd'}
>>> s2
{'m', 'z', 'c', 'l', 'a'}
>>> s1 & s2
{'c', 'a'}
>>> s1 | s2
{'m', 'z', 'r', 'b', 'c', 'l', 'a', 'd'}
>>> s1 - s2
{'b', 'r', 'd'}