集合类型
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)
#不同是当删除元素不存在时,不会报错
总结
无序
存多个值
可变