集合定义和基本操作方法
#如果没有交集,返回True
s1 = {1,2}
s2 = {3,4}
print(s1.isdisjoint(s2)) #True
1、不同元素组成
2、无序
3、集合中元素必须是不可变类型,但是set集合是可变
4、集合内元素不能重复
用途:
集合使用来进行关系元素,单独取集合的某一个元素是没有意义,也没有相应的方法
交集:s1 & s2,取两个集合的共同部分
差集:s1 - s2,记过存于s1而不存在s2的元素集合
补集:s1 ^ s2,扣掉s1与s2共同部分,剩下的部分合到一起
并集:s1 | s2,把两个合到一起,去掉重复
添加元素,重复就不加入
s = {1,2,3,4,5,6}
s.add(3333)
print(s) #{1, 2, 3, 4, 5, 6, 3333}
#随机删除一个
s = {1,2,3,4,5,6}
s.pop()
print(s) #{2, 3, 4, 5, 6}
#指定删除一个
s = {1,2,3,4,5,6}
s.remove(1)
print(s) #{2, 3, 4, 5, 6}
#指定删除一个,删除元素不存在不会报错 remove会报错
s = {1,2,3,4,5,6}
s.discard(2)
print(s) #{1, 3, 4, 5, 6}
#关系运算
python_l=["alex","sss","dddd"]
linux_l=["sss","dddd"]
python_and_linux=[]
for i in python_l:
if i in linux_l:
python_and_linux.append(i)
print(python_and_linux) #['sss', 'dddd']
求交集
python_l=["alex","sss","dddd"]
linux_l=["sss","dddd","ooo"]
p_s=set(python_l)
l_s=set(linux_l)
print(p_s.intersection(l_s)) # {'dddd', 'sss'}
print(p_s&l_s) #{"dddd","sss"}
print(p_s,l_s) #{'alex', 'dddd', 'sss'} {'dddd', 'ooo', 'sss'}
求并集
python_l=["alex","sss","dddd"]
linux_l=["sss","dddd","ooo"]
p_s=set(python_l)
l_s=set(linux_l)
print(p_s.union(l_s)) #{'dddd', 'ooo', 'alex', 'sss'}
print(p_s|l_s) #{"dddd","ooo","alex","sss"}
#求差集
python_l=["alex","sss","dddd"]
linux_l=["sss","dddd","ooo","rrrr"]
p_s=set(python_l)
l_s=set(linux_l)
print(p_s-l_s) #{'alex'}
print(l_s-p_s) #{'rrrr', 'ooo'}
print(p_s.difference(l_s)) #{'alex'}
print(l_s.difference(p_s)) #{'rrrr', 'ooo'}
求交叉补集
python_l=["alex","sss","dddd"] linux_l=["sss","dddd","ooo","rrrr"] p_s=set(python_l) l_s=set(linux_l) print(p_s.symmetric_difference(l_s)) #{'ooo', 'rrrr', 'alex'} print(p_s^(l_s)) #{'ooo', 'rrrr', 'alex'}
python_l=["alex","sss","dddd"]
linux_l=["sss","dddd","ooo","rrrr"]
p_s=set(python_l)
l_s=set(linux_l)
print(p_s|l_s) # 求并集 {'sss', 'alex', 'rrrr', 'dddd', 'ooo'}
print(p_s&l_s) # 求交集 {'sss', 'dddd'}
print(p_s^l_s) # 求交叉补集{'rrrr', 'alex', 'ooo'}
print(p_s-l_s) # 求差集{'alex'}
p_s=p_s-l_s # 求差集{'alex'}
print(p_s) # 求差集{'alex'}
s1 = {1,2}
s2 = {1,2,3}
print(s1.issubset(s2)) #True s1是s2的子集
print(s2.issubset(s1)) #False
s1 = {1,2}
s2 = {1,2,3}
print(s1.issubset(s2)) #True s1是s2的子集
print(s2.issubset(s1))
print(s2.issuperset(s1))
s=frozenset(("sdikfj","aosidhjf"))
print(s) #frozenset({'sdikfj', 'aosidhjf'})
#True s1是s2的父集
#更新多个值
s1 = {1,2}
s2 = {1,2,3}
s1.update([4,5,6])
print(s1) #{1, 2, 4, 5, 6}

浙公网安备 33010602011771号