一:基本使用
1 用途: 关系运算、去重
2 定义方式:{}内用逗号分隔开多个元素,每一个元素都必须是不可变(即可hash)类型
强调:
2.1 集合内元素都必须是不可变(即可hash)类型
2.2 集合内的元素无序
2.3 集合内的元素不能重复
1 s={1,2,‘a‘} #s=set({1,2,‘a‘})# 集合的定义 2 print(type(s)) 3 4 s={1.1,1,‘aa‘,(1,2,3),{‘a‘:1}}#TypeError: unhashable type: ‘dict‘ 5 6 s={1,‘a‘,‘hello‘,(1,2,3),4} 7 for item in s: 8 print(item) 9 10 #集合有去重的效果 11 s={1,1,1,1,1,1,1,1,1,‘a‘,‘b‘,‘a‘} 12 s={(1,2,3),(1,2,3),‘a‘,‘b‘,‘a‘} 13 print(s) 14 15 s=set(‘hello‘) 16 print(s)
举例说明
1 1、去重的目标所包含的值必须都为不可变类型 2 2、去重的结果会打乱原来的顺序 3 names=[‘asb‘,‘asb‘,‘asb‘,‘wsb‘,‘wsb‘,‘egon_nb‘,[1,2,3]] 4 s=set(names) 5 6 names=list(s) 7 print(names)
单纯的用集合去重,需要注意的问题是
3 常用操作+内置的方法
优先掌握的操作:
1 pythoners={‘王大炮‘,‘李二丫‘,‘陈独秀‘,‘艾里克斯‘,‘wxx‘,‘欧德博爱‘} 2 print(len(pythoners))
1、长度len
1 print(‘李二丫‘ in pythoners) 2 3 pythoners={‘王大炮‘,‘李二丫‘,‘陈独秀‘,‘艾里克斯‘,‘wxx‘,‘欧德博爱‘} 4 linuxers={‘陈独秀‘,‘wxx‘,‘wlc‘,‘张全蛋‘}
2、成员运算in和not in
1 print(pythoners | linuxers) 2 print(pythoners.union(linuxers))
3、|并集
1 print(pythoners & linuxers) 2 print(pythoners.intersection(linuxers)) 3 print(linuxers & pythoners)
4、&交集
1 print(pythoners - linuxers) 2 print(pythoners.difference(linuxers)) 3 print(linuxers - pythoners) 4 print(linuxers.difference(pythoners))
5、-差集
1 print(pythoners ^ linuxers) 2 print(pythoners.symmetric_difference(linuxers)) 3 4 print(linuxers ^ pythoners)
6、^对称差集
1 s1={1,2,3} 2 s2={1,2,3} 3 print(s1 == s2)
7、==
1 s1={1,2,3,4,5} 2 s2={1,2,3} 3 print(s1 > s2) # s1包含s2 4 print(s1.issuperset(s2)) 5 print(s2.issubset(s1)) 6 7 s3={1,2,10} 8 print(s1 > s3) 9 10 s1={1,2,3,4,5} 11 s2={1,2,3,4,5} 12 print(s1 >= s2)
8、父集(包含关系):>,>=
二:该类型总结
1 存一个值or存多个值
可以存多个值,值都必须为不可变类型
2 有序or无序
无序
3 可变or不可变
set集合是可变类型
原文地址:https://www.cnblogs.com/zhangjie19930507/p/9129224.html
时间: 2024-11-07 21:58:34