1. Python中集合(set)的概念和特点
集合是Python中常用的数据类型之一,它是一组无序且唯一的元素。我们可以使用set()函数或者使用{ }创建一个集合。
相较于列表和元组,集合不支持索引、切片和排序等操作,不过它具有以下一些特点:
集合中的元素不允许重复。
集合元素无序,即不能用索引或切片来进行操作。
集合中的元素必须为不可变对象,如数字、字符串、元组等。
1.1 创建集合
我们可以使用set()函数或者使用{ }来创建一个集合,如下所示:
# 使用set()函数创建一个空集合
empty_set = set()
print(empty_set)
# 使用{ }来创建一个集合
number_set = {1, 2, 3, 4, 5}
print(number_set)
执行上述代码,会输出以下结果:
{}
{1, 2, 3, 4, 5}
1.2 集合的基本操作
1.2.1 添加元素
我们可以使用add()方法向集合中添加新元素:
number_set = {1, 2, 3, 4, 5}
number_set.add(6)
print(number_set)
执行上述代码,会输出以下结果:
{1, 2, 3, 4, 5, 6}
1.2.2 删除元素
我们可以使用remove()方法从集合中删除元素:
number_set = {1, 2, 3, 4, 5}
number_set.remove(3)
print(number_set)
执行上述代码,会输出以下结果:
{1, 2, 4, 5}
1.2.3 更新集合
我们可以使用update()方法将一个集合中的元素添加到另一个集合中:
number_set1 = {1, 2, 3}
number_set2 = {3, 4, 5}
number_set1.update(number_set2)
print(number_set1)
执行上述代码,会输出以下结果:
{1, 2, 3, 4, 5}
1.2.4 清空集合
我们可以使用clear()方法清空集合中的所有元素:
number_set = {1, 2, 3, 4, 5}
number_set.clear()
print(number_set)
执行上述代码,会输出以下结果:
{}
2. 集合运算
在Python中,我们可以使用集合运算符和方法来对集合进行运算。常见的集合运算符和方法包括并集、交集、差集、对称差集等。
2.1 并集
并集是指将两个集合中的所有元素进行合并,不包括重复元素。我们可以使用 | 运算符或者union()方法来求两个集合的并集,如下所示:
set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1 | set2 # 使用 | 运算符
print(union_set)
union_set = set1.union(set2) # 使用union()方法
print(union_set)
执行上述代码,会输出以下结果:
{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5}
2.2 交集
交集是指两个集合中共同包含的元素集合。我们可以使用 & 运算符或者intersection()方法来求两个集合的交集,如下所示:
set1 = {1, 2, 3}
set2 = {3, 4, 5}
intersection_set = set1 & set2 # 使用 & 运算符
print(intersection_set)
intersection_set = set1.intersection(set2) # 使用intersection()方法
print(intersection_set)
执行上述代码,会输出以下结果:
{3}
{3}
2.3 差集
差集是指在一个集合中而不在另一个集合中的元素集合。我们可以使用 - 运算符或者difference()方法来求两个集合的差集,如下所示:
set1 = {1, 2, 3}
set2 = {3, 4, 5}
difference_set = set1 - set2 # 使用 - 运算符
print(difference_set)
difference_set = set1.difference(set2) # 使用difference()方法
print(difference_set)
执行上述代码,会输出以下结果:
{1, 2}
{1, 2}
2.4 对称差集
对称差集是指两个集合的元素中不相同的部分。即两个集合的并集减去交集。我们可以使用 ^ 运算符或者symmetric_difference()方法来求两个集合的对称差集,如下所示:
set1 = {1, 2, 3}
set2 = {3, 4, 5}
symmetric_difference_set = set1 ^ set2 # 使用 ^ 运算符
print(symmetric_difference_set)
symmetric_difference_set = set1.symmetric_difference(set2) # 使用symmetric_difference()方法
print(symmetric_difference_set)
执行上述代码,会输出以下结果:
{1, 2, 4, 5}
{1, 2, 4, 5}
3. 集合推导式
和列表推导式、字典推导式一样,Python中也支持集合推导式,用来生成一个新的集合。语法为:{expr for var in iterable}。
例如,我们可以使用集合推导式将一个字符串转换为一个集合:
string = 'Hello, world!'
string_set = {char for char in string}
print(string_set)
执行上述代码,会输出以下结果:
{'H', ',', ' ', 'e', 'o', 'l', 'w', 'd', 'r', '!'}
4. 总结
集合是Python中常用的数据类型之一,它是一组无序且唯一的元素,不支持索引、切片和排序等操作。我们可以使用集合运算符和方法来对集合进行运算,常见的集合运算符和方法包括并集、交集、差集、对称差集等。此外,我们还可以使用集合推导式来生成一个新的集合。