目录
Python 中的集合(Set)介绍
集合(set)是 Python 中的一种无序、不重复的数据结构。集合非常适合用于去除重复元素、进行集合运算等操作。本文将详细介绍集合的基本概念、常见操作以及一些实用的代码示例。
1. 集合的基本概念
集合是一种无序、不重复的数据结构。集合中的元素必须是不可变的,例如数字、字符串或元组。集合支持数学中的集合运算,如并集、交集和差集等。
2. 创建集合
2.1 使用花括号 {} 创建集合
# 创建一个集合
my_set = {1, 2, 3, 4, 5}
print(my_set) # 输出 {1, 2, 3, 4, 5}
2.2 使用 set() 函数创建集合
# 使用 set() 函数创建集合
my_set = set([1, 2, 3, 4, 5])
print(my_set) # 输出 {1, 2, 3, 4, 5}
2.3 去除重复元素
# 去除列表中的重复元素
my_list = [1, 2, 2, 3, 4, 4, 5]
my_set = set(my_list)
print(my_set) # 输出 {1, 2, 3, 4, 5}
3. 集合的常见操作
3.1 添加元素
使用 add() 方法添加一个元素。
my_set = {1, 2, 3}
my_set.add(4)
print(my_set) # 输出 {1, 2, 3, 4}
3.2 删除元素
使用 remove() 方法删除一个元素。如果元素不存在,会抛出 KeyError。
my_set = {1, 2, 3, 4}
my_set.remove(3)
print(my_set) # 输出 {1, 2, 4}
使用 discard() 方法删除一个元素。如果元素不存在,不会抛出异常。
my_set = {1, 2, 3, 4}
my_set.discard(3)
print(my_set) # 输出 {1, 2, 4}
3.3 清空集合
使用 clear() 方法清空集合。
my_set = {1, 2, 3, 4}
my_set.clear()
print(my_set) # 输出 set()
3.4 检查元素是否存在
使用 in 关键字检查元素是否存在。
my_set = {1, 2, 3, 4}
print(3 in my_set) # 输出 True
print(5 in my_set) # 输出 False
4. 集合运算
4.1 并集
使用 union() 方法或 | 运算符计算两个集合的并集。
set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1.union(set2)
print(union_set) # 输出 {1, 2, 3, 4, 5}
# 使用 | 运算符
union_set = set1 | set2
print(union_set) # 输出 {1, 2, 3, 4, 5}
4.2 交集
使用 intersection() 方法或 & 运算符计算两个集合的交集。
set1 = {1, 2, 3}
set2 = {3, 4, 5}
intersection_set = set1.intersection(set2)
print(intersection_set) # 输出 {3}
# 使用 & 运算符
intersection_set = set1 & set2
print(intersection_set) # 输出 {3}
4.3 差集
使用 difference() 方法或 - 运算符计算两个集合的差集。
set1 = {1, 2, 3}
set2 = {3, 4, 5}
difference_set = set1.difference(set2)
print(difference_set) # 输出 {1, 2}
# 使用 - 运算符
difference_set = set1 - set2
print(difference_set) # 输出 {1, 2}
4.4 对称差集
使用 symmetric_difference() 方法或 ^ 运算符计算两个集合的对称差集(即不在两个集合交集中的元素)。
set1 = {1, 2, 3}
set2 = {3, 4, 5}
sym_diff_set = set1.symmetric_difference(set2)
print(sym_diff_set) # 输出 {1, 2, 4, 5}
# 使用 ^ 运算符
sym_diff_set = set1 ^ set2
print(sym_diff_set) # 输出 {1, 2, 4, 5}
5. 集合的遍历
可以使用 for 循环遍历集合中的元素。
my_set = {1, 2, 3, 4}
for element in my_set:
print(element)
# 输出 1 2 3 4(顺序可能不同)
6. 集合的冻结(Frozen Set)
冻结集合(frozenset)是不可变的集合,可以作为字典的键或另一个集合的元素。
# 创建一个冻结集合
frozen_set = frozenset([1, 2, 3, 4])
print(frozen_set) # 输出 frozenset({1, 2, 3, 4})
# 尝试添加元素(会报错)
# frozen_set.add(5) # 报错:AttributeError: 'frozenset' object has no attribute 'add'
7. 实际应用示例
7.1 去重并排序
# 去重并排序
my_list = [3, 1, 2, 3, 4, 2, 1]
unique_sorted_list = sorted(set(my_list))
print(unique_sorted_list) # 输出 [1, 2, 3, 4]
7.2 检查子集和超集
set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5}
# 检查子集
print(set1.issubset(set2)) # 输出 True
# 检查超集
print(set2.issuperset(set1)) # 输出 True
3万+

被折叠的 条评论
为什么被折叠?



