python基础语法---数据类型之集合类型

一:基本使用
    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集合是可变类型
   

猜你喜欢

转载自www.cnblogs.com/zhangjie19930507/p/9129224.html