(1) 什么是集合
集合:Python中使用关键字set表示
集合中存储多个、没有顺序的、不能重复的、可以是不同类型的多个数据!
(2) 集合的声明
python中通过set()或者花括号声明空集合、非空集合
# 声明空集合
s1 = set()
print(s1, type(s1))
# 声明非空集合
s2 = {1, 2, 2, 4, 5, 5}
print(s2, type(s2))
(3) 集合增删改查
s = set()
# 2.1 添加数据
s.add("java")
s.add("python")
s.add("javascript")
print(s)
# 2.2 删除数据(成员运算符)
x = "javascript"
if x in s:
s.remove(x)
print(s)
# 2.3 修改数据(集合中无法直接修改)
s.remove("java")
s.add('vue')
print(s)
# 2.4 遍历数据
for x in s:
print("集合遍历:", x)
(4) 集合常见函数
函数 | 描述 |
---|---|
add()[掌握] | 向集合中添加数据 |
clear() | 清空集合 |
copy() | 复制一个集合 |
difference()[掌握] | A对B集合的差集 |
difference_update() | 求差集并更新A集合 |
discard()[掌握] | 删除一个数据 |
intersection()[掌握] | 交集 |
intersection_update() | 交集并更新A集合 |
isxxxxx() | 所有判断相关函数 |
pop() | 随机删除一个数据 |
remove()[掌握] | 删除一个数据 |
symmetric_difference() | 完整差集 |
symmetric_difference_update() | 完整差集并更新A集合 |
union()[掌握] | 并集 |
update() | 并集并更新A集合 |
交并差集
# 3. 集合常见函数
# 3.1 需求1:数据分析,获取用户A和用户B相似画像
s1 = {1, 2, 3, 4, 5}
s2 = {3, 4, 5, 6, 7}
# 交集
print(s1.intersection(s2))
# 3.2 需求2:数据分析,整体用户群体画像
# 并集
print(s1.union(s2))
# 3.3. 差集
print(s1.difference(s2))
数据容器间的差别
列表 | 元组 | 字典 | 集合 | |
---|---|---|---|---|
关键字 | list | tuple | dict | set |
存储多个数据 | 是 | 是 | 是 | 是 |
存储多种类型 | 是 | 是 | 是 | 是 |
数据包含顺序 | 是 | 是 | 是 | 否 |
数据是否重复 | 是 | 是 | key不能重复,value可以重复 | 否 |
数据元素 | 单个 | 单个 | key:value | 单个 |
应用场景:
-
列表【掌握】:主要存放多个可以重复的、有顺序的数据
-
元组:主要存放常量数据,程序中不可变的数据
-
字典【掌握】:主要存放经常操作运算的数据,通过key可以获取value数据参与运算
-
集合:主要存放用于条件过滤的数据,如剔除重复数据、获取多个数据交差并集等