集合的内置方法

集合的内置方法

集合的内置方法

定义:大括号括起来,内部存放多个元素,元素与元素之间用逗号隔开,元素只能是不可变类型,并且元素不能重复。
只有在以下两个场景才 有可能 用到集合:

  1. 去重
  2. 关系运算
  • 基本操作
"""
定义:在{}内用逗号分开多个元素,集合具备以下三个特点:
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)
上一篇:2021-11-5


下一篇:Tiiimmi的学习日志 3 11.5-6