您是否在使用 Python 集合运算时遇到困难?想知道如何使用它们?本介绍将帮助您基本了解 Python 中的集合运算。

在本教程中,我们将介绍 Python 中的集合运算以及对集合执行的其他运算。此外,我们还将介绍集合上的不同方法以及 Python 中集合运算的示例。查看本文 以深入了解 Python 中的组合学 .

集合是无序元素的集合。每个元素必须是不同的且不可变的。但是,集合本身是可变的。

您可以从集合中添加或删除项目。您还可以对它们执行数学运算,例如并集、交集和差集。

集合的概念已经从数学中明确地翻译成了 Python 等编程语言。随之而来的是一些非常有用的方法,例如 union() , intersection() difference() ,它们也是直接从数学中翻译而来的。

集合不仅仅是数学中的一个基本概念。在你的编程生涯中,你可能会遇到各种各样的挑战,而使用集合可以更快地解决这些挑战。

如果您是 Python 的完全初学者,我们建议您查看 此课程 。如果您是具有一些 Python 知识的初学者,请查看课程 Python 基础知识第 3 部分 ,其中涵盖了变量、列表、条件语句、循环和函数的基础知识。

Python 中的集合和集合运算

集合的定义方式是将所有项(即元素)括在花括号中,并用逗号分隔或使用内置 set() 方法。它可以包含无限数量的各种类别(整数、浮点数、元组、字符串等)的元素。

但是,集合可能不包含可变项,例如列表、集合或字典。 请参阅本文以 了解有关列表、元组和集合之间差异的更多信息 . 是一个非常棒的平台,可帮助您开始使用 Python。

在 Python 中使用空集可能有点棘手。在 Python 中,空花括号会导致字典为空;但是,我们不能使用它们来初始化空集。相反,我们使用 set() 不带任何参数的函数来创建没有元素的集合。

请参阅下面的代码来理解这些概念:

# A set of integers
int_set = {10, 20, 30, 40, 50}

# A set of mixed data types
mixed_set = {9, "This is a set element", (1, 2)}

# All set elements are unique
my_set = {1, 2, 3, 1, 3, 3}
print(my_set) # Output: {1, 2, 3}

# A set can be made from a list
my_set = set([1, 2, 3, 2, 4, 5, 5])
print(my_set) # Output: {1, 2, 3, 4, 5}

在 Python 中修改集合

索引和切片不能用于访问或更新集合的元素。集合数据类型不支持它,因为集合是无序的。

add() 方法用于添加单个元素,而 则 update() 用于更新多个组件。可以将元组、列表、字符串和其他集合传递给该 update() 方法。在任何情况下都会避免重复。

下面的代码说明了这些例子。

# Initialize a set
my_set = {11, 60}

# Add an element to the set
# Output: {11, 21, 60}
my_set.add(21)
print(my_set)

# Add more than one element to the set
# Output: {8, 11, 13, 20, 21, 60}
my_set.update([20, 13, 8])
print(my_set)

从集合中删除元素

方法 discard() remove() 用于从集合中删除特定项目。它们完全相同,只有一点不同。 discard() 如果集合中不存在该元素,则方法不会修改集合。 remove() 另一方面,如果集合中不存在该元素,则方法会抛出错误。

以下示例演示了这些函数的用法。

# Initialize a set
my_set = {10, 20, 30, 40, 50}
print(my_set)

# Discard an element
my_set.discard(40)
print(my_set) # Output: {10, 20, 30, 50}

# Remove an element
my_set.remove(60) # KeyError!

我们也可以使用该 pop() 方法移除并返回一个项目。但是,无法知道哪个项目会被弹出,因为该集合是无序数据类型。它绝对是随机的!

请注意,该 clear() 方法用于从集合中删除所有元素。

# Initialize a set
my_set = set("LearnPython")

# Pop an element
print(my_set.pop()) # Output: random element

# Clear the set
my_set.clear()
print(my_set) # Output: set()

在 Python 中,大多数(但不是全部)集合运算都以两种方式之一执行:通过运算符或通过方法。在了解 Python 中不同集合运算的工作原理之前,了解运算符和方法之间的区别非常重要。

在 Python 中,方法类似于函数,只是方法与对象绑定。当我们对对象调用方法时,它可能影响也可能不影响该对象(在本例中为集合)。值得注意的是,每个运算符都对应一个不同的 Python 特殊函数。因此,它们都完成相同的任务,但具有不同的语法要求。

Python 支持许多集合运算,包括并集、交集、差集和对称差集。让我们看一些 Python 中集合运算的示例。

Python 联合操作示例

两个集合的并集是两个集合中所有元素的集合,不包含重复元素。在 Python 中,您可以使用方法 union() | 语法来查找并集。让我们看一个 Python 并集示例。

使用 | 运算符:

# Defining the two sets
first_set = {1, 5, 7, 4, 5}
second_set = {4, 5, 6, 7, 8}

# Creating the union of the two sets
new_set = first_set | second_set

print(new_set) # Output: {1, 4, 5, 6, 7, 8}

运行上述代码将创建两个集合: first_set second_set 。然后,并集运算符创建一个 new_set first_set 中的所有唯一元素的集合 second_set .

使用该方法也可以达到同样的效果 union()

new_set = first_set.union(second_set)

由于并集由两个集合的元素组成,因此它是对称的。因此, first_set.union(second_set) 结果是与 second_set.union(first_set) .

Python 交集运算及其示例

两个集合的交集是两个集合共有的所有元素的集合。在 Python 中,您可以使用方法 intersection() 或 & 运算符来查找交集。以下是一些 Python 交集示例:

使用 & 运算符:

# Defining the two sets
first_set = {1, 5, 7, 4, 5}
second_set = {4, 5, 6, 7, 8}

# Creating the intersection of the two sets
new_set = first_set & second_set

print(new_set) # Output: {4, 5}

运行上述代码将创建两个集合: first_set second_set 。然后,交集运算符创建一个 new_set first_set 中的所有唯一元素 second_set .

使用该方法也可以达到同样的效果 intersection()

new_set = first_set.intersection(second_set)

由于交集法产生的元素集合是两个集合共有的,因此它是对称的。因此, first_set.intersection(second_set) 结果是与 second_set.intersection(first_set) .

Python 集合差运算示例

这两个集合之间的区别在于,第一个集合中存在但第二个集合中不存在的所有元素的集合。Python 允许您使用方法 difference() 或 - 运算符来执行此操作。让我们看一些 Python 集合差异的示例。

使用 - 运算符:

# Defining the two sets
first_set = {1, 5, 7, 4, 5}
second_set = {4, 5, 6, 7, 8}

# Creating the difference of the two sets
new_set = first_set - second_set

print(new_set) # Output: {1, 2, 3}

您也可以使用这个 difference() 方法:

# Difference of two sets
# Initialize A and B
first_set = {1, 2, 3, 4, 5}
second_set = {4, 5, 6, 7, 8}

# Creating the difference between the two sets
new_set = second_set.difference(first_set)

print(new_set) # Output: {6, 7, 8}

如示例所示, 差分算子不是对称的 。你首先命名哪个集合很重要,并且会影响结果 new_set .

使用 Python 集合运算

在本教程中,您学习了如何在 Python 中定义集合运算。此外,我们还熟悉了用于处理集合的函数、运算符和方法。如果您想了解有关 Python 集合的更多信息,例如如何获取对称差,请访问文章“ Python 集合运算及更多:您需要了解的有关 Python 集合的所有信息 ”。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部