集合去重操作
1. 定义空集合需要使用关键字set
s1 = set()
2. 类型转换 能够支持for 循环的数据类型都可以转成集合(元素要是不可变类型)
""" 集合内元素是无序的 """
去重
s1 = {1, 2, 2, 2, 3, 4, 3, 4, 3, 1, 3, 3, 2 , 1, 2, 3, 2, 1, 2, 3}
print(s1) # {1, 2, 3, 4}
name _list = ['chick', 'mushroom', 'mushroom', 'mushroom', 'chick', 'chick']
1. 先将列表转换成集合
s1 = set(name_list)
2. 再将去重之后的集合转换成列表
l1 = list(s1)
print(l1)
练习题
ll = [33, 22, 11, 22, 11, 44, 33, 22, 55, 66, 77, 77, 66, 55, 44]
# 基本要求:去重即可
s1 = set(l1)
l1 = list(s1)
print(l1)
# 拔高要求:去重并保留原来的顺序
1. 先定义一个新列表
new_list = []
2. for 循环l1列表
for i in l1:
3. 判断当前元素是否再新列表中
if i not in new_list:
3.1 如果不在 则添加到新列表
new_list.append(i)
# 3.2 如果在 则不管
print(new_list)
集合关系运算
关系运算
两个群体之间做差异比较 共同好友 共同关注
friends1 = {"zero", "kevin", "jason", "egon"} # 用户1的好友们
friends2 = {"Jy", "ricky", "jason", "egon"} # 用户2的好友们
1. 求两个用户的共同好友
print(friends & friends2) # {'egon', 'jason'}
2. 求两个用户的所有好友
print(friends1 | friends2) # {'Jy', 'jason', 'egon', 'ricky', 'zero', 'kevin'}
3. 求用户1独有的好友
print(friends1 - friends2) # {'zero', 'kevin'}
4. 求用户2独有的好友
print(friends2 - friends1) # {'Jy', 'ricky'}
5. 求用户1和用户2各自的好友
print(friends1 ^ friends2) # {'Jy', 'zero', 'ricky', 'kevin'}
6. 父集与子集
s1 = {11, 22, 33,44}
s2 = {11, 33}
print(s1 > s2) # 判断s1是否是s2的父集 True
print(s2 < s1) # 判断s2是否是s1的子集 True