python基础学习10----集合

时间:2021-07-22 22:08:03

集合具有无序性,互异性

一.集合的建立

空集合

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&s2
print(s3)#{4,5}
s3=s1.intersection(s2)
print(s3)#{4,5}

并集

s3=s1|s2
print(s3)#{1, 2, 3, 4, 5, 6, 7, 8}
s3=s1.union(s2)
print(s3)#{1, 2, 3, 4, 5, 6, 7, 8}

差集

#属于s1但不属于s2
s3=s1-s2
print(s3)#{1, 2, 3}
s3=s1.difference(s2)
print(s3)#{1, 2, 3}

对称差

#除去s1和s2中相同的元素
s3=s1^s2
print(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)#False
print(s3<s1)#True
print(s3.issubset(s1))#True

超集

s1={1,2,3,4}
s2={3,4,5,6}
s3={2,3,4}
print(s1>s2)#False
print(s1>s3)#True
print(s1.issuperset(s3))#True