标签:去重 掌握 oss inf 差集 方法 set集合 可变 names
一、集合
1.基本使用
(1)用途:关系运算、去重
(2)定义方式:{}内用逗号分开多个元素,每一个元素都必须是不可变(即可hash)类型
强调:
a.集合内的元素都必须是不可变(即可hash)类型
b.集合内的元素是无序的,并不能通过索引来取值
c.集合内的元素不能重复
s={1,3,"hello"} #s=set({1,3,"hello"})
print(type(s))
2.单纯的用集合去重,需要注意的问题是
(1)去重的目标所包含的值必须都是为不可变类型
(2)去重的结果会打乱原来的顺序
#names=["Namy","Brooke","Sauro","Luffy","Luffy","Brooke"] #s=set(names) #names=list(s) #print(names)
3.常用操作和内置方法
(1)优先掌握的操作
a.长度len
print(len(names))
b.成员运算in和not in
print("Luffy" in names)
*****重点:
当没有集合的时候,取出两个列表中都有的元素的方法:
names1={"Luffy","Namy","Brooke","Sauro","Boss","Boost"}
names2={""Luffy,"Brooke","Boss","Sun","Moon"}
names1=["Luffy","Namy","Brooke","Sauro","Boss","Boost"] names2=[""Luffy,"Brooke","Boss","Sun","Moon"] #list=[] #创建一个空列表 #for name in names1: #for循环把names1中的依次变量赋值给name # if name in names2: #判断name是否在列表names2中 # print(name) # list.append(name) #把name添加进空列表list中 #print(list)
当没有集合的时候,取出两个列表中的不同的部分思路跟上边一样,下边是有集合之后的操作方法:
names1={"Luffy","Namy","Brooke","Sauro","Boss","Boost"} names2={""Luffy,"Brooke","Boss","Sun","Moon"} | 并集 #前后顺序改变没有任何影响 print(names1|names2) print(names1.union(names2)) & 交集 #前后顺序改变没有任何影响 print(names1&names2) print(names1.intersection(names2)) - 差集 #前后位置对调,结果不同 print(names1-names2) print(names2-names1) print(names1.difference(names2)) print(names2.difference(names1)) ^ 对称差集 #前后顺序改变不会改变结果 print(names1^names2) print(names2^names1) print(names1.symmetric_difference(names2)) == print(names1==names2) #False >,>= 父集 print(names1>names2) #False (names1包含names2) print(names1.issuperset(names2)) <,<= 子集(被包含的关系) print(names2<names1) #True
4.该类型总结
(1)存一个值或者多个值
可以存多个值,但是值必须都是不可变类型
(2)有序或者无序
集合是无序的
(3)可变或者不可变
set集合是可变类型
#s={1,2,3}
#print(id(s))
#s.add(4)
#print(s)
#print(id(s))
5.集合的去重
单纯的用集合去重,需要注意的问题是
(1)去重的目标所包含的值必须都是不可变类型
(2)去重的结果会打乱原来的顺序
stu_info=[
{‘name‘:‘namy‘,‘age‘:18,‘sex‘:‘female‘},
{‘name‘:‘luffy‘,‘age‘:18,‘sex‘:‘male‘},
{‘name‘:‘luffy‘,‘age‘:18,‘sex‘:‘male‘},
{‘name‘:‘brooke‘,‘age‘:999,‘sex‘:‘male‘},
{‘name‘:‘brooke‘,‘age‘:999,‘sex‘:‘female‘},
]
new_list=[]
for info in stu_info:
if info not in new_list:
new_info.append(info)
print(new_info)
标签:去重 掌握 oss inf 差集 方法 set集合 可变 names
原文地址:https://www.cnblogs.com/Smart1san/p/9123285.html