012、Python数据类型之集合

本文介绍了Python中的数据类型集合,包括如何创建、添加元素、合并、删除元素以及集合的交集、并集、差集和对称差集操作。集合主要用于数据去重和高效的数据操作,例如使用update合并集合,用remove或discard删除元素,利用in检查元素是否存在,以及通过difference、union、intersection和symmetric_difference计算集合间的各种关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python数据类型之集合

python中数据类型集合是一组无序的、不重复的数据组成的,在使用中,最大的作用就是用来去重

创建集合可以使用set()和{a, b, c},不可以是{},这样python默认会认为这是一个字典,而不是集合。

创建集合

set01 = {"Jack", "Tom", "Toney", "Lucy", "Jack", "Lily"}
print(set01)  # {"Jack", "Tom", "Toney", "Lucy",  "Lily"}
print(type(set01))  # <class 'set'>

# 使用set函数创建一个空的集合
set02 = set()
print(set02)  # set()
print(type(set02))  # <class 'set'>

# 错误的创建方式
set03 = {}
print(set03)  # {}
print(type(set03))  # <class 'dict'>

集合常用方法

添加元素
set05 = set()
set05.add("Jack")
print(set05)  # {"Jack"}
合并两个集合

合并集合会自动去掉两个集合中重复的元素,只保留一个。

set06 = {"Alex", "Andy", "Apollo", "Jack"}
set07 = {"Lucy", "Lily", "Frank"}
set06.update(set07)
print(set06)  # {'Alex', 'Frank', 'Jack', 'Apollo', 'Lucy', 'Lily', 'Andy'}

# 如果update添加的是字符串,会被拆分成单个字母,需要注意哦!!
set06.update("abc")
print(set06)  # {'b', 'Alex', 'Andy', 'Lily', 'a', 'Apollo', 'Lucy', 'c', 'Jack', 'Frank'}

update在使用时,可以是列表,元组等,但是不可以是字符串,否则会被拆分。

删除元素
set08 = {"Alex", "Andy", "Apollo", "Jack", "Frank"}
# remove 删除指定元素
set08.remove("Jack")  
print(set08)  # {'Apollo', 'Alex', 'Frank', 'Andy'}

# remove删除没有的元素会报错
set08.remove("Lily")  # KeyError: 'Lily'

# 使用discard()删除指定元素
set08.discard("Jack")  
print(set08)  # {'Apollo', 'Alex', 'Frank', 'Andy'}

# discard删除不存在的元素
set08.discard("Lily")
print(set08)  # {"Alex", "Andy", "Apollo", "Jack", "Frank"}  不会报错

# 随机删除一个元素
set08.pop()
print(set08)  # {'Jack', 'Frank', 'Alex', 'Apollo'}

# 删除集合内所有的元素
set08.clear()
print(set08)  # set()
判断元素是在集合内
set09 = {"Alex", "Andy", "Apollo", "Jack", "Frank"}
# 使用in进行判断
print("Jack" in set09)  # True
集合的交集、并集、差集
set10 = {"Jack", "Tom", "Toney", "Lucy", "Jack", "Lily"}
set11 = set(("Jack", "Tom", "Lucy", "Taylor"))

# difference()和 ”-“ 计算两个集合的差集
print(set10.difference(set11))  # {'Lily', 'Toney'}
print(set10 - set11)  # {'Lily', 'Toney'}

# 并集 union() | 
print(set10.union(set11))  # {'Toney', 'Taylor', 'Tom', 'Lucy', 'Lily', 'Jack'}
print(set10 | set11)  # {'Toney', 'Taylor', 'Tom', 'Lucy', 'Lily', 'Jack'}

# 交集intersection
print(set10.intersection(set11))  # {'Tom', 'Lucy', 'Jack'}
print(set10 & set11)  # {'Tom', 'Lucy', 'Jack'}

# 对称差集symmetric_difference
print(set10.symmetric_difference(set11))  # {'Toney', 'Lily', 'Taylor'}
print(set10 ^ set11)  # {'Toney', 'Lily', 'Taylor'}

差集: 返回在A集合当中存在B集合中不存在的元素的集合。(B集合在A集合中不存在的不做计算)

并集: 合并两个集合

交集: 计算A集合和B集合都存在的元素的集合。

对称差集: 返回A集合和B集合中互不存在的集合。(A集合的元素在B集合不存在,B集合的元素在A集合不存在)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值