Python集合(set)
1.集合(set)是一个无序的不重复元素序列。
2.集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。
创建集合
1.可以使用大括号 { } 创建集合,元素之间用逗号 , 分隔, 或者也可以使用 set() 函数创建集合。
parame = {value01,value02,...}
set(value)
set1 = {1, 2, 3, 4}# 直接使用大括号创建集合
set2 = set([4, 5, 6, 7])# 使用 set()函数从列表创建集合
set3 = set((4, 5, 6, 7))# 使用 set()函数从元组创建集合
#注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
s4=set({10,20,30,40})
print(s4) #{40, 10, 20, 30}
s5=set([100,200,300,100])#可以去除列表中重复的元素,不用管顺序
print(s5)# {200, 100, 300} 集合中的元素是无序的
#集合中可以保存不可变的数据
# s2={"hello",3.14,[10,20,30],{"name":"karen","age":20}}#报错 不能有列表和字典
#可以写入多个相同的数据,但是最后只有保存一个相同的数据
s1={10,20,10}
print(s1) #{10, 20}
#创建空集合
s8={}
print(s8,type(s8))#{} <class 'dict'> 矛盾,是字典
s9=set({})
print(s9,type(s9))#set() <class 'set'>
添加元素
1.将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。
2.s.add( x ) 添加元素到集合
s10={10,20,30}
x=40
# x=[10,20,30]#不可添加列表
s10.add(x)
print(s10)#{40, 10, 20, 30}
s10.add("x")
print(s10)#{40, 10, 20, 'x', 30}
s10.add(10)#与集合的元素重复,就不会添加,也不会报错
print(s10)#{40, 'x', 10, 20, 30}
3.s.update( x ) 添加元素到集合,且参数可以是列表,元组,字典等 ,x 可以有多个,用逗号分开
s11={10,20,30}
s11.update([10,20,30,40])
print(s11)#{40, 10, 20, 30}
s11.update([22,22,333,4222])
print(s11)#{40, 10, 333, 20, 22, 4222, 30}
s11.update([99,88],[22,44])
print(s11)#{99, 40, 10, 44, 333, 20, 22, 88, 4222, 30}
s11.update([99,88],(9898,7878))
print(s11)#{99, 7878, 40, 10, 9898, 44, 333, 20, 22, 88, 4222, 30}
# s11.update(([11,22],[33,44]))#报错 会把元组中的元素列表添加进集合并报错
s11.update([(000,9090),(555,6666),(6767,5656)])
print(s11)#{99, 7878, (0, 9090), 40, 10, 9898, 44, 333, (555, 6666), 20, 22, (6767, 5656), 88, 4222, 30}
s11.update({"name":"karan","age":1111})#将字典的键添加进集合
print(s11)#{99, 7878, (0, 9090), 40, 'age', 10, 9898, 44, 333, (555, 6666), 20, 22, (6767, 5656), 88, 'name', 4222, 30}
移除元素
1.s.remove( x ):将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。
s12={1,2,3,4,5}
s12.remove(5)
# s12.remove(50)#报错 不能移除集合中不存在的元素
print(s12)#{1, 2, 3, 4}
2.s.discard( x ):将元素 x 从集合 s 中移除,如果元素不存在,不会发生错误。
s12={1,2,3,4,5}
s12.discard(4)
s12.discard(40)#不报错 可以移除集合中不存在的元素
print(s12)#{1, 2, 3}
3.s.pop():对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。
x=s12.pop()
print(x)#1 有返回值
print(s12)# {2,3}
计算集合元素个数、清空集合、判断元素是否在集合中存在
1.len(s):计算集合元素个数
2.s.clear():清空集合
3.x in s 判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False。
集合内置方法完整API
add()、update()、len()(详细笔记在前面)
clear()、discard()、pop()、remove()(详细笔记在前面)
copy()
1.copy():拷贝一个集合
s14={1,2,3,4,5}
s=s14.copy()#深拷贝
s.add(999)
print(s,s14)#{1, 2, 3, 4, 5, 999} {1, 2, 3, 4, 5}
difference()、difference_update()
1.difference():返回多个集合的差集
s15={1,2,3,4,5}
s16={3,4,5,6,7}
s17={3,2,9,10}
re=s15.difference(s16)
print(re)#{1, 2}
print(s15)#{1, 2, 3, 4, 5} 不会修改元数据
re=s15.difference(s16,s17)
print(re)#{1}
2.difference_update():移除集合中的元素,该元素在指定的集合也存在。
s15={1,2,3,4,5}
s16={3,4,5,6,7}
s15.difference_update(s16)
print(s15)#{1, 2} 修改原数据
intersection()、intersection_update()
1.intersection():返回集合的交集
s15={1,2,3,4,5}
s16={3,4,5,6,7}
re=s15.intersection(s16)
print(s15)#{1, 2, 3, 4, 5}
print(re)#{3, 4, 5}
2.intersection_update():返回集合的交集。
s15={1,2,3,4,5}
s16={3,4,5,6,7}
re=s15.intersection_update(s16)#会操作原来的15集合,保留阴影部分(交集)
print(s15)#{3, 4, 5}
print(re)#None
isdisjoint()、issubset()、issuperset()
1.isdisjoint():判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
s15={1,2,3,4,5}
s16={3,4,5,6,7}
re=s15.isdisjoint(s16)
print(re)#False
2.issubset():判断指定集合是否为该方法参数集合的子集。
s15={1,2,3,4}
s16={1,2,3,4,5,6}
re=s15.issubset(s16)
print(re)#True
s15={1,2,3,4,0}
s16={1,2,3,4,5,6}
re=s15.issubset(s16)
print(re)#False
s15=set({})
s16={1,2,3,4,5,6}
re=s15.issubset(s16)
print(re)#True
s15=set({})
s16=set({})
re=s15.issubset(s16)
print(re)#True
3.issuperset():判断该方法的参数集合是否为指定集合的子集
s15={1,2,3,4}
s16={1,2,3,4,5,6}
re=s15.issuperset(s16)
print(re)#False
re=s16.issuperset(s15)
print(re)#True
symmetric_difference()、symmetric_difference_update()
1.symmetric_difference():返回两个集合中不重复的元素集合。
2.symmetric_difference_update():移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
s15={2,3,4}
s16={1,2,3,4,5,6}
re=s15.symmetric_difference(s16)
print(re)#{1, 5, 6}
s15.symmetric_difference_update(s16)
print(s15)#{1, 5, 6}
union()
1.union():返回两个集合的并集
s15={1,2,3,4,5}
s16={3,4,5,6,7}
s17={3,2,9,10}
# re=s15+s16
# print(re)# 报错
re=s15.union(s16)
print(re)#{1, 2, 3, 4, 5, 6, 7}
re=s15.union(s16,s17)
print(re)#{1, 2, 3, 4, 5, 6, 7, 9, 10}
标签:10,re,Python,s16,s15,基础知识,集合,print
From: https://blog.csdn.net/m0_73723097/article/details/142794334