1. 简介
Python3 中集合(set)是一种无序且不重复的数据类型,可以使用大括号{}或set()函数创建。和其他语言中的“set”类似,Python 中的集合也支持联合、交集、差集等操作。
2. 创建集合
2.1 使用大括号{}创建
和创建字典类似,可以使用大括号{}创建集合。它们之间的区别在于,字典需要键值对,而集合只需要元素,例如:
# 创建一个空集合
my_set = {}
# 打印集合
print(my_set)
上述代码执行结果为:
{}
这里创建的是一个空字典,而不是空集合。要创建一个空集合,应该调用 set()
函数,如下所示:
# 创建一个空集合
my_set = set()
# 打印集合
print(my_set)
输出结果为:
set()
现在我们来创建一个有元素的集合:
# 创建一个有元素的集合
my_set = {1, 2, 3}
# 打印集合
print(my_set)
输出结果为:
{1, 2, 3}
2.2 使用set()函数创建
除了使用大括号{}创建集合外,我们还可以使用set()函数来创建一个集合:
# 创建一个有元素的集合
my_set = set([1, 2, 3])
# 打印集合
print(my_set)
输出结果为:
{1, 2, 3}
3. 集合的基本操作
3.1 添加元素
使用add()方法可以向集合中添加元素:
# 创建一个空集合
my_set = set()
# 添加元素
my_set.add(1)
my_set.add(2)
my_set.add(3)
# 打印集合
print(my_set)
输出结果为:
{1, 2, 3}
3.2 删除元素
使用remove()方法可以从集合中删除元素:
# 创建一个有元素的集合
my_set = {1, 2, 3}
# 删除元素
my_set.remove(3)
# 打印集合
print(my_set)
输出结果为:
{1, 2}
如果要删除的元素不存在于集合中,将会抛出 Keyerror 错误。我们可以使用discard()方法来删除元素,如果元素不存在于集合中,则不会抛出错误:
# 创建一个有元素的集合
my_set = {1, 2, 3}
# 删除元素
my_set.discard(4)
# 打印集合
print(my_set)
输出结果为:
{1, 2, 3}
3.3 成员运算符
可以使用 in 运算符来判断元素是否存在于集合中:
# 创建一个有元素的集合
my_set = {1, 2, 3}
# 判断元素是否存在于集合中
print(2 in my_set)
print(4 in my_set)
输出结果为:
True
False
4. 集合的操作
除了基本的添加、删除、判断元素是否存在等操作,集合还支持一些其它的操作:
4.1 并集
union() 方法可以返回两个集合的并集:
# 创建两个有元素的集合
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# 返回两个集合的并集
set3 = set1.union(set2)
# 打印集合
print(set3)
输出结果为:
{1, 2, 3, 4, 5}
4.2 交集
intersection() 方法可以返回两个集合的交集:
# 创建两个有元素的集合
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# 返回两个集合的交集
set3 = set1.intersection(set2)
# 打印集合
print(set3)
输出结果为:
{3}
4.3 差集
difference() 方法可以返回两个集合的差集,即在集合1中出现但是不在集合2中出现的元素组成的集合:
# 创建两个有元素的集合
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# 返回两个集合的差集
set3 = set1.difference(set2)
# 打印集合
print(set3)
输出结果为:
{1, 2}
4.4 对称差集
symmetric_difference() 方法可以返回两个集合的对称差集,即在集合1中或集合2中出现,但不同时出现的元素组成的集合:
# 创建两个有元素的集合
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# 返回两个集合的对称差集
set3 = set1.symmetric_difference(set2)
# 打印集合
print(set3)
输出结果为:
{1, 2, 4, 5}
5. 总结
本文介绍了 Python3 中集合(set)的基础用法,包括创建集合、添加、删除元素、判断元素是否存在、集合的操作等。集合在 Python 中是一种非常有用的数据类型,在开发过程中可以发挥重要的作用。学习集合的基础用法后,我们可以进一步了解不同的场景下,如何高效地使用集合来解决问题。