集合具有无序性,互异性
一.集合的建立
空集合
s=set()s={}#这样默认为是一个空字典
集合内的元素是可哈希的即不可变的数据类型
s={1,2,3,4}s=set([1,2,3,4])
s=set('python') print(s)#{'h', 'y', 't', 'n', 'p', 'o'}
二.添加元素
s=set([1,2,3,4])s.add(5)print(s)#{1,2,3,4,5}
update可以添加多个元素
s.update([5,6])print(s)#{1, 2, 3, 4, 5, 6}s.update([7,8],{9,10})print(s)#{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
三.删除元素
discard和remove都可以表示删除一个元素,但若集合中没有该元素,则使用remove会报错,discard不会
s={1,2,3,4}s.remove(1)print(s)#{2, 3, 4}s.discard(2)print(s)#{3, 4}s.discard(5)s.remove(5)#这句会报错
pop
s={1,2,3,4}a=s.pop()#随机删除一个元素并将其作为返回值 print(a)
clear
s.clear()#清空集合print(s)#set()空集合
四.不可变集合frozenset
s=frozenset(1,2,3,4)#不能进行增加或删除等操作
五.集合之间的关系
s1=set([1,2,3,4,5])s2=set([4,5,6,7,8])
交集
s3=s1&s2print(s3)#{4,5}s3=s1.intersection(s2)print(s3)#{4,5}
并集
s3=s1|s2print(s3)#{1, 2, 3, 4, 5, 6, 7, 8}s3=s1.union(s2)print(s3)#{1, 2, 3, 4, 5, 6, 7, 8}
差集
#属于s1但不属于s2s3=s1-s2print(s3)#{1, 2, 3}s3=s1.difference(s2)print(s3)#{1, 2, 3}
对称差
#除去s1和s2中相同的元素s3=s1^s2print(s3)#{1, 2, 3, 6, 7, 8}s3=s1.symmetric_difference(s2)print(s3)#{1, 2, 3, 6, 7, 8}
子集
s1={1,2,3,4}s2={3,4,5,6}s3={2,3,4}print(s2
超集
s1={1,2,3,4}s2={3,4,5,6}s3={2,3,4}print(s1>s2)#Falseprint(s1>s3)#Trueprint(s1.issuperset(s3))#True