一、集合简介
1、集合是无序的,且不允许重复
2、变量初始化
a = {1, 3, "s", "n"}
print(type(a)) #<class 'set'>
b = set()
print(type(b)) #<class 'set'>
c = {}
print(type(c)) #<class 'dict'>
二、常用功能:增删查,去重,交集、并集、差集
1、增
- add()
s = {1, 3, "s", "n"}
s.add("vae")
print(s) #{1, 3, 'vae', 's', 'n'}
- update(): 把要传入的元素拆分传入集合
s = {1, 3, "s", "n"}
s.update("hello")
print(s) #{1, 3, 'n', 'vae', 's', 'h', 'o', 'l', 'e'}
2、删除:remove, pop, discard
remove: 有则删,无则报错,指定删除传入的参数
pop: 随机删除
discard: 有则删,无不做任何操作
- remove()
s = {1, 3, "s", "n"}
print(s) #{1, 'n', 3, 's'}
s.remove(3)
print(s) #{1, 'n', 's'}
s.remove("h")
print(s) #KeyError: 'h'
- pop()
s = {1, 3, "s", "n"}
s.pop()
print(s) #{'n', 3, 's'}
- discard()
s = {1, 3, 's', 'l', 'o', 'n', 'e', 'h'}
s.discard("h")
print(s) #{1, 3, 'e', 'n', 'o', 'l', 's'}
s.discard("v")
print(s) #{1, 3, 'e', 'n', 'l', 'o', 's'}
3、查:isdisjoint()/issubset()/issuperset()
- isdisjoint(): 判断不包含关系
s1 = {1, 3, 4}
s2 = {4, 3, 8}
print(s1.isdisjoint(s2)) #False
- issubset()是否是子集
- issuperset() 是否是父集
s1 = {1, 2, 3, 4}
s2 = {3, 4}
print(s1 & s2)
print(s1.issubset(s2)) #False
print(s1.issuperset(s2)) #True
4、交集:你有我也有,我们两共有部分
s1 = {1, 3, 4}
s2 = {4, 3, 8}
print(s1 & s2) #{3, 4}
5、并集
s1 = {1, 3, 4}
s2 = {4, 3, 8}
print(s1 | s2) #{1, 3, 4, 8}
6、差集
s1 = {1, 3, 4}
s2 = {4, 3, 8}
print(s1 - s2) #{1}
7、去重:想要对数据去重时可以将其转换为集合
s = {1, 2, 2, 2, 4, 4, 6, 8}
print(s) #{1, 2, 4, 6, 8}
L = [1, 2, 2, 2, 4, 4, 6, 8]
s1 = set(L)
print(s1) #{1, 2, 4, 6, 8}
T = (1, 2, 2, 2, 4, 4, 6, 8)
s2 = set(T)
print(s2) #{1, 2, 4, 6, 8}