Python集合
集合(set)是一个无序的不重复元素序列,它的主要作用如下:
- 去重,把一个列表变成集合,就自动去重了
- 关系测试,测试两组数据之前的交集、差集、并集等关系
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
a = set('aaa') b = {'aaa'} c = {'a', 'a', 'a'} d = set(['aaa'])print(a) print(b) print(c) print(d)
输出结果:
{'a'}
{'aaa'}
{'a'}
{'aaa'}
可以看出set()和{}方法是有区别的:
set(‘aaa’) = {‘a’, ‘a’, ‘a’} set([‘aaa’]) = {‘aaa’}
集合间的运算
s = set('Hi') t = set('Hello') a = t | s # t 和 s的并集 b = t & s # t 和 s的交集 c = t - s # 求差集(项在t中,但不在s中) d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中 print(a) print(b) print(c) print(d)
输出结果:
{'H', 'e', 'i', 'o', 'l'}
{'H'}
{'e', 'o', 'l'}
{'e', 'i', 'o', 'l'}
集合的内置方法
序号 | 方法 |
1 |
add() 为集合添加元素 |
2 |
clear() 移除集合中的所有元素 |
3 |
copy() 浅copy一个集合 |
4 |
difference() 返回多个集合的差集 |
5 |
difference_update() 移除集合中的元素,该元素在指定的集合也存在 |
6 |
discard() 删除集合中指定的元素(元素不存在不会发生错误) |
7 |
intersection() 返回集合的交集 |
8 |
intersection_update() 删除集合中的元素,该元素在指定的集合中不存在 |
9 |
isdisjoint() 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False |
10 |
issubset() 判断指定集合是否为该方法参数集合的子集 |
11 |
issuperset() 判断该方法的参数集合是否为指定集合的子集 |
12 |
pop() 随机移除元素 |
13 |
remove() 移除指定元素(元素不存在会发生错误) |
14 | symmetric_difference()
返回两个集合中不重复的元素集合 |
15 | symmetric_difference_update()
移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中 |
16 |
union() 返回两个集合的并集 |
17 |
update() 给集合添加多个元素 |
可用len()计算元素个数
x in s 判断元素x是否在集合s中
frozenset: 无法修改的集合,不具备修改集合的方法