在本章中,我们将深入探讨 Python3 的 set() 函数。Set 是一种无序且不重复的数据结构,非常适合用于处理集合运算,如并集、交集和差集等。
什么是 Set?
Set 是一个包含不同元素的无序集合。Set 中的每个元素都是唯一的,不允许有重复的值。Set 可以看作是一个数学中的集合,具有集合的一些基本特性。
创建 Set
创建一个空的 Set,可以使用 set() 函数,如下所示:
empty_set = set() print(type(empty_set)) # 输出:<class 'set'>
也可以通过将列表或元组转换为 Set 来创建一个 Set:
list_to_set = set([1, 2, 3])
print(list_to_set) # 输出:{1, 2, 3}
tuple_to_set = set((4, 5, 6))
print(tuple_to_set) # 输出:{4, 5, 6}添加元素
Set 提供了多种方法来添加元素:
- 使用
add()方法向 Set 中添加单个元素:
my_set = {1, 2, 3}
my_set.add(4)
print(my_set) # 输出:{1, 2, 3, 4}- 使用
update()方法向 Set 中添加多个元素:
my_set = {1, 2, 3}
my_set.update([4, 5, 6])
print(my_set) # 输出:{1, 2, 3, 4, 5, 6}删除元素
Set 提供了几种删除元素的方法:
- 使用
remove()方法移除指定的元素,如果元素不存在则会抛出KeyError:
my_set = {1, 2, 3}
my_set.remove(2)
print(my_set) # 输出:{1, 3}- 使用
discard()方法移除指定的元素,如果元素不存在则不会有任何操作:
my_set = {1, 2, 3}
my_set.discard(2)
print(my_set) # 输出:{1, 3}
my_set.discard(4) # 不会抛出异常
print(my_set) # 输出:{1, 3}- 使用
pop()方法移除并返回任意一个元素:
my_set = {1, 2, 3}
removed_element = my_set.pop()
print(removed_element) # 输出:1 (具体输出取决于实现)
print(my_set) # 输出:{2, 3}集合运算
Set 提供了一些内置方法来执行集合运算:
union()或|操作符:计算两个 Set 的并集:
set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1.union(set2)
print(union_set) # 输出:{1, 2, 3, 4, 5}intersection()或&操作符:计算两个 Set 的交集:
set1 = {1, 2, 3}
set2 = {3, 4, 5}
intersection_set = set1.intersection(set2)
print(intersection_set) # 输出:{3}difference()或-操作符:计算两个 Set 的差集:
set1 = {1, 2, 3}
set2 = {3, 4, 5}
difference_set = set1.difference(set2)
print(difference_set) # 输出:{1, 2}symmetric_difference()或^操作符:计算两个 Set 的对称差集:
set1 = {1, 2, 3}
set2 = {3, 4, 5}
symmetric_difference_set = set1.symmetric_difference(set2)
print(symmetric_difference_set) # 输出:{1, 2, 4, 5}其他常用方法
clear():清空 Set 中的所有元素:
my_set = {1, 2, 3}
my_set.clear()
print(my_set) # 输出:set()issubset():判断一个 Set 是否是另一个 Set 的子集:
set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5}
is_subset = set1.issubset(set2)
print(is_subset) # 输出:Trueissuperset():判断一个 Set 是否是另一个 Set 的超集:
set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5}
is_superset = set2.issuperset(set1)
print(is_superset) # 输出:Trueisdisjoint():判断两个 Set 是否完全不相交:
set1 = {1, 2, 3}
set2 = {4, 5, 6}
is_disjoint = set1.isdisjoint(set2)
print(is_disjoint) # 输出:True总结
本章介绍了 Python3 中 set() 函数的基础知识以及 Set 数据类型的各种操作方法。Set 是一种非常有用的无序且不重复的数据结构,在实际编程中常用于去重、集合运算等场景。希望读者能够通过本章的学习掌握 Set 的基本用法,并能灵活运用于实际项目中。