集合是一个无序的,不重复的数据组合,它的主要作用如下:
- 去重,把一个列表变成集合,就自动去重了
- 关系测试,测试两组数据之前的交集、差集、并集等关系
集合的语法
list_1 = [1,2,3,4,5,5,6,6,] list_1 = set(list_1) list_2 = set([5,6,7,8,9])
print(list_1,type(list_1))
print(list_1,list_2)
>>>
{1, 2, 3, 4, 5, 6} <class ‘set‘> #把一个列表变成集合,就自动去重了
{1, 2, 3, 4, 5, 6} {5, 6, 7, 8, 9}
常用操作:
1、关系测试
#交集 print(list_1.intersection(list_2)) print(list_1 & list_2) >>> {5, 6}
#并集 print(list_1.union(list_2)) print(list_1 | list_2) >>> {1, 2, 3, 4, 5, 6, 7, 8, 9}
#差集=list_1 - 交集 print(list_1.difference(list_2)) print(list_1 - list_2) >>> {1, 2, 3, 4}
#对称差集 = 并集 - 交集 print(list_1.symmetric_difference(list_2)) print(list_1 ^ list_2) >>> {1, 2, 3, 4, 7, 8, 9}
#子集 list_1 是 list_2的子集 print(list_1.issubset(list_2)) #父集 print(list_1.issuperset(list_2))
>>>
False
False
#两集合的交集为空集 print(list_1.isdisjoint(list_2)) >>> False
#增加 list_1.add(666) #一项 list_2.update([11,22,33]) #多项 print(list_1,list_2) >>> {1, 2, 3, 4, 5, 6, 666} {33, 5, 6, 7, 8, 9, 11, 22}
#删除一项 list_1.remove(9) #如果所删元素集合中不存在,报错 list_1.discard(9) #如果所删元素集合中不存在,返回Non print(list_1)
#删除任意,并返回 print(list_1.pop()) >>> 1
len(s) set 的长度 x in s 测试 x 是否是 s 的成员 x not in s 测试 x 是否不是 s 的成员 s.issubset(t) s <= t 测试是否 s 中的每一个元素都在 t 中 s.issuperset(t) s >= t 测试是否 t 中的每一个元素都在 s 中 s.union(t) s | t 返回一个新的 set 包含 s 和 t 中的每一个元素 s.intersection(t) s & t 返回一个新的 set 包含 s 和 t 中的公共元素 s.difference(t) s - t 返回一个新的 set 包含 s 中有但是 t 中没有的元素 s.symmetric_difference(t) s ^ t 返回一个新的 set 包含 s 和 t 中不重复的元素 s.copy() 返回 set “s”的一个浅复制