Python中的集合介绍

  • Post category:Python

Python中的集合介绍

在Python中,集合是一种无序的、可变的数据类型,用于存储不重复的元素。集合是一种非常常用的数据类型,可以用于去重、交集、并集操作。本文将详细介绍Python中的集合,包括集合的创建、集合的操作、集合的方法等。

集合的创建

要创建一个集合,我们可以使用set()函数或使用花括号{}。例如:

# 创建集合
my_set = set([1, 2, 3])
my_set2 = {4, 5, 6}
print(my_set)  # 输出:{1, 2, 3}
print(my_set2)  # 输出:{4, 5, 6}

上述代码中,我们使用set()函数和花括号{}创建了两个集合,并将结果存储在my_set和my_set2中。

集合的操作

集合支持多种操作,包括并集、交集、差集等。下面是一些常见的集合操作:

并集

要获取两个集合的并集,我们可以使用union函数或|运算符。例如:

# 获取两个集合的并集
set1 = {1, 2, 3}
set2 = {3, 4, 5}
new_set = set1.union(set2)
print(new_set)  # 输出:{1, 2, 3, 4, 5}

new_set = set1 | set2
print(new_set)  # 输出:{1, 2, 3, 4, 5}

上述代码中,我们使用union()函数和|运算符获取了两个集合的并集,并将结果存储在new_set中。

交集

要获取两个集合的交集,我们可以使用intersection()函数或&运算符。例如:

# 获取两个集合的交集
set1 = {1, 2, 3}
set2 = {3, 4, 5}
new_set = set1.intersection(set2)
print(new_set)  # 输出:{3}

new_set = set1 & set2
print(new_set)  # 输出:{3}

上述代码中,我们使用intersection()函数&运算符获取了两个集合的交集,并将结果存储在new_set中。

差集

要获取两个集合的差集,我们可以使用difference()函数或-运算符。例如:

# 获取两个集合的差集
set1 = {1, 2, 3}
set2 = {3, 4, 5}
new_set = set1.difference(set2)
print(new_set)  # 输出:{1, 2}

new_set = set1 - set2
print(new_set)  # 输出:{1, 2}

上述代码中,我们使用difference()函数-运算符获取了两个集合的差集,并将结果存储在new_set中。

集合的方法

集合还支持多种方法,包括添加元素、删除元素、清空集合等。下面是一些常见的集合方法:

添加元素

要向集合中添加元素,我们可以使用add()函数或update()函数。例如:

# 向集合中添加元素
my_set = {1, 2, 3}
my_set.add(4)
print(my_set)  # 输出:{1, 2, 3, 4}

my_set.update([5, 6])
print(my_set)  # 输出:{1, 2, 3, 4, 5, 6}

上述代码中,我们使用add()函数和()函数向集合my_set中添加了元素。

删除元素

要从集合中删除元素,我们可以使用remove()函数或discard()函数。例如:

# 从集合中删除元素
my_set = {1, 2, 3, 4, 5}
my_set.remove(4)
print(my_set)  # 输出:{1, 2, 3, 5}

my_set.discard(5)
print(my_set)  # 输出:{1, 2, 3}

上述代码中,我们使用remove()函数和discard()函数从集合my_set中删除了元素。

清空集合

清空集合中的所有元素,我们可以使用clear()函数。例如:

# 清空集合
my_set = {1, 2, 3}
my_set.clear()
print(my_set)  # 输出:set()

上述代码中,我们使用clear()函数清空了集合my_set中的所有元素。

示例说明

下面是两个示例,演示了如何使用集合实现一些常见的任务。

示例1:查找两个列表的交集

下面是一个示例,演示了如何使用集合查找两个列表的交集:

# 查找两个列表的交集
list1 = [1, 2, 3, 4, 5]
list2 = [3, 4, 5, 6, 7]
set1 = set(list1)
set2 = set(list2)
intersection = set1.intersection(set2)
print(intersection)  # 输出:{3, 4, 5}

上述代码中,我们首先将两个列表转换为集合,然后使用intersection()函数获取两个集合的交,并将结果存储在intersection中。

示例2:统计字符串中不同字符的个数

下面是另一个示例,演示了如何使用集合统计字符串中不同字符的个数:

# 统计字符串中不同字符的个数
my_string = 'hello world'
my_set = set(my_string)
count = len(my_set)
print(count)  # 输出:9

上述代码中,我们首先将字符串my_string转换为集合my_set,然后使用len()函数获取集合my_set中元素的个数,即为字符串中不同字符的个数。

总之,集是一种非常常用的数据类型,可以用于去重、交集、并集等操作。我们可以使用set()函数或花括号{}创建集合,使用union()函数或|运算符获取两个集合的并集,使用intersection()函数或&运算符获取两个集合的交集,使用difference()函数或-运算符获取两个集合的差集。集合还持多种方法,包括添加元素、删除元素、清空集合等。我们还演示了如何使用集合查找两个列表的集和统计字符串中不同字符的个数。