Python集合
一、集合的创建
1.1、用 set() 方法
1.1.1 创建空集合
>>> st = set()
>>> st
set()
1.1.2 从字符串创建
>>> st = set('abccba')
>>> st
{'a', 'b', 'c'}
1.1.3 从元组创建
>>> st = set(('a', 'b', 'c'))
>>> st
{'a', 'b', 'c'}
1.1.4 从字典创建
>>> st = set({'a':1, 'b':2, 'c':3})
>>> st
{'a', 'b', 'c'},将字典的键作为集合的元素
1.2、用大括号 { }
1.2.1 直接创建
>>> st = {'a', 'b', 'c', 'b'}
>>> st
{'a', 'b', 'c'}
1.2.2 用集合推导式
>>> st = {x for x in 'abcdefcba' if x not in 'def'}
>>> st
{'a', 'b' ,'c'}
二、两个集合间的运算
集合的四个基本运算:交、并、差、补;
可以用运算符或集合内置方法;
>>> a = {'a', 'b', 'c', 'd'}
>>> b = {'c', 'd', 'e', 'f'}
2.1 交
# 方法1
>>> a & b
{'c', 'd'}
# 方法2
>>> a.intersection(b)
{'c', 'd'}
2.2 并
# 方法1
>>> a | b
{'a', 'b', 'c', 'd', 'e', 'f'}
# 方法2
>>> a.union(b)
{'a', 'b', 'c', 'd', 'e', 'f'}
2.3 差
# 方法1
>>> a - b
{'a', 'b'}
# 方法2
>>> a.difference(b)
{'a', 'b'}
2.4 补
注意:这里的“补”运算,全集定义为 a | b , 子集定义为 a & b
因此,该运算可理解为,求 a 和 b 的并集中,不包含 a b 交集的元素
>>> a ^ b
{'a', 'b', 'e', 'f'}
三、集合的基本操作
3.1、添加元素
>>> a = {'a', 'b', 'c'}
# 方法1,用add()方法添加一个元素
>>> a.add('d')
>>> a
{'a', 'b', 'c', 'd'}
# 方法2,用update()方法可添加多个元素,参数可以是列表、元组、字典等
# 基本语法:s.update(x), x可以有多个,用逗号隔开
>>> a.update({1, 3}) # 相当于集合并运算
>>> a
{1, 3, 'a', 'b', 'c', 'd'}
>>> a.update([1,4],[5,6])
>>> a
{1, 3, 4, 5, 6, 'a', 'b', 'c', 'd'}
3.2 移除元素
>>> a = {'a', 'b', 'c'}
# 方法1,用remove()方法,如果元素不存在,会报错
>>> a.remove('b')
>>> a
{'a', 'c'}
>>> a.remove('d')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'd'
# 方法2,用discard()方法,如果元素不存在,不会报错
>>> a.discard('d')
>>> a
{'a', 'c'}
3.3 计算集合元素个数
用 len()
>>> a = {'a', 'b', 'c'}
>>> len(a)
3
3.4 清空集合
用 clear() 方法
>>> a = {'a', 'b', 'c'}
>>> a.clear()
>>> a
set()
参考资料
1、菜鸟教程