集合是一个无序的,不重复的数据组合,它的主要作用如下:
集合的语法
- 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"的一个浅复制
来源: http://www.bubuko.com/infodetail-2453723.html