一、集合类型 set
1 作用
关系运算、去重
用for也能做关系运算,就是太麻烦。
l1=[1,2,3,4,5]
l2=[3,3,4,5,6]
l=[]
for x in l1:
if x in l2:
l.append(x)
print(x)
2 定义:在{ }内用逗号分开多个元素,集合内元素有3个特点:
1.集合内元素均为不可变类型
2.集合内元素无序
3.集合内元素没有重复
定义空集合:s=set(),大括号是默认空字典。
3 类型转换
set({1,2,3})
res=set('helllllllo')
dict=({'k1':1,'k2':2})
s=set(dict)
print(res,s)
4 内置方法——关系运算
4.1取交集
friend1={1,2,3,4,5}
friend2={3,4,5,6,7,8}
print(friend1 & friend2)
4.2 取并集
print(friend1 | friend2)
4.3 取差集
print(friend1 - friend2)
4.4 取对称差集
print(friend1 ^ friend2)
4.5 父子集
当一个集合S1是S2的子集时称,S1<S2
5 内置方法——去重
特点:只能针对不可变类型,无法保证原来的顺序。
去重一般自己根据情况编写程序,python不可能提供解决问题的所有方法
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 l:
if dic not in new_l:
new_l.append(dic)
6 其他内置方法
6.1 .discard() 括号内是要删除的值,若删除的元素不存在不会报错
s={1,2,3}
# s.discard(4) # 删除元素不存在do nothing
# print(s)
# s.remove(4) # 删除元素不存在则报错
6.2 .update() 添加新集合,.add()添加新元素
# s.update({1,3,5})
# print(s)
# s.add(4)
# print(s)
6.3 .pop()随机删除一个元素
# s.update({1,3,5})
# print(s)