集合的内置方法
定义:大括号括起来,内部存放多个元素,元素与元素之间用逗号隔开,元素只能是不可变类型,并且元素不能重复。
只有在以下两个场景才 有可能 用到集合:
- 去重
- 关系运算
- 基本操作
"""
定义:在{}内用逗号分开多个元素,集合具备以下三个特点:
1. 每个元素必须是不可变类型
2. 集合内没有重复的元素
3. 集合内元素无序
"""
# 1.定义空集合需要使用关键字set
s1 = set()
# 类型转换
# 但凡能被for循环的遍历的数据类型,都可以转换为集合,但是其中的数据必须是不可变类型。
- 内置方法
# 去重
s1 = {1,2,2,3,4,3,4,3,1,6,5,6}
# 自动去重
name_list = ['jason', 'jaosn','duke','duke','kevin']
s2 = set(name_list)
name_list1 = list(s2)
# 注意:这种保留是顺序打乱的
# 小练习
l1 = [22,33,11,22,33,44,55,88,33,22]
# 1.要求去重即可
t1 = set(l1)
l2 = list(t1)
print(l2)
# 2.要求去重 并 保留原来的顺序
# 定义一个新列表
lis = []
# 通过for循环+if判断成员运算,将不在新列表中的成员添加到列表中,已存在的成员则不管
for i in l1:
if i not in lis:
lis.append(i)
print(lis)
- 关系运算
两个群体之间做差异比较
friends1 = {'aj','kevin','jason','eg'}
friends2 = {'jy','ricky','jason','eg'}
# 1.求两个用户的共同好友 -- intersection() &
print(friends1 & friends2)
print(friends1.intersection(friends2))
# 2.求两个用户的所有好友 -- union() |
print(friends1 | friends2)
print(friends1.intersection(friends2))
# 3.求用户1独有的好友 -- difference() -
print(friends1 - friends2)
print(friends1.difference(friends2))
# 4.求用户2独有的好友 -- difference() -
print(friends2 - friends1)
print(friends2.difference(friends1))
# 5.求用户1和用户2的各自好友,去掉共同好友(对称差集)
# symmetric_difference() ^
print(friends1 ^ friends2)
print(friends1.symmetric_difference(friends2))
# 6.父集与子集
s1 = {11,22,33,44}
s2 = {11,33}
print(s1 > s2) # True s1是s2的父集
print(s2 < s1) # True s2是s1的子集```
![image](https://www.icode9.com/i/l/?n=20&i=blog/2607829/202111/2607829-20211109165645583-895286497.png)