Fork me on GitHub

集合类型

1.用途

去重
关系运算

2.定义方式

在{}内用逗号分隔开多个元素,
元素的特点如下:
无序

s1={'aa','bb','bvv','aa'}
print(s1) #多次打印 每一次的顺序都不相同,自动去重

元素必须是不可变类型

集合内的元素不能重复

s1={1,1,1,1,1,1,}
print(s1)
print(type(s1))
s2=set()
print(type(s2))

set是任意能被for循环遍历的类型

res=set('hello')
print(res)
print(''.join(res))

res=set([111,222,333,444,111,111])
print(res)
print(list(res))

src_l=[
    {'name':'lili','age':18,'sex':'male'},
    {'name':'jack','age':73,'sex':'male'},
    {'name':'tom','age':20,'sex':'female'},
    {'name':'lili','age':18,'sex':'male'},
    {'name':'lili','age':18,'sex':'male'},
]

循环去重是在不变原来的顺序可进行的

new_l=[]
for dic in src_l:
    if dic not in new_l:
        new_l.append(dic)
print(new_l) #循环中去重

3. 常用操作+内置的方法

friends1={"zero","kevin","jason","egon"}
friends2={"jy","ricky",'jason',"egon"}

print(friends1 & friends2)
#合起来取相同的元素:交集

res=friends1|friends2
print(res)
#取两者所有的元素:并集

print(friends1^friends2)
#取两者不相同的所有元素:交差并集
 

res1=friends1-friends2
print(res1)
#取第一个变量的独有元素

res2=friends2-friends1
print(res2)
#取第二个变量独有的元素

4.父子集:一个集合包含另外一个集合,它们才有父子集的关系

s1={1,2,3}
s2={3,4,5}
print(s1>s2)  #False
print(s2>s1)  #False
print(s1==s2) #False
#说明s1与s2没有形成父子集关系

s1={111,222,333,444,555,666}
s1.update({777,888})
print(s1)  #无序加入
s2={111,222,333}
print(s1>s2) #为true则代表s2是s1的子集
print(s2>s1) #False

s1={111,222,333,444,555,666}
for item in s1:
    print(item)
#没有顺序
print(id(s1))
s1.update({777,888})
print(s1)
#加入内容,且打印出来无顺序,加入时带上{}
print(id(s1))  #ID没有变,可变类型

s1.clear()#清除

res=s1.pop()
print(res) #可取
print(s1)

res=s1.remove(444)
print(s1)
print(res) #没有则报错 返回值为none

res=s1.discard(999)
print(s1)
print(res)
#不同是当删除元素不存在时,不会报错

总结
无序
存多个值
可变

posted @ 2020-09-01 09:58  artherwan  阅读(159)  评论(0编辑  收藏  举报