python--集合

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中常用的数据类型之一,它是一组无序且唯一的元素,不支持索引、切片和排序等操作。我们可以使用集合运算符和方法来对集合进行运算,常见的集合运算符和方法包括并集、交集、差集、对称差集等。此外,我们还可以使用集合推导式来生成一个新的集合。

后端开发标签