Python - 添加集合元素



添加集合元素

添加集合元素意味着将新元素包含到现有集合中。在 Python 中,集合是可变的,这意味着您可以在创建后修改它们。虽然集合中的元素必须是不可变的(例如整数、字符串或元组),但集合本身可以被修改。

您可以使用多种方法向集合添加元素,例如 add()、update() 或集合运算(如并集(|))和集合推导式。

集合的一个定义特征是它只能保存不可变(可散列)的对象。这是因为集合在内部使用哈希表进行快速成员测试。不可变对象是可散列的,这意味着它们在生命周期中具有永不改变的哈希值。

使用 add() 方法添加集合元素

Python 中的 add() 方法用于向集合添加单个元素。它通过插入指定的元素来修改集合,前提是该元素不存在。如果元素已经存在于集合中,则 add() 方法对集合没有改变。

语法

以下是向集合添加元素的语法:

set.add(obj)

其中,obj 是任何不可变类型的对象。

示例

在下面的示例中,我们初始化一个名为“language”的空集合,并使用 add() 方法向其中添加元素:

# Defining an empty set
language = set()

# Adding elements to the set using add() method
language.add("C")
language.add("C++")
language.add("Java")
language.add("Python")

# Printing the updated set
print("Updated Set:", language)

它将产生以下输出:

Updated Set: {'Python', 'Java', 'C++', 'C'}

使用 update() 方法添加集合元素

在 Python 中,集合类(set)的 update() 方法用于向集合添加多个元素。它通过将来自可迭代对象(例如另一个集合、列表、元组或字符串)的元素添加到当前集合来修改集合。如果可迭代对象中的元素不存在于集合中,则将其插入到集合中。

语法

以下是更新集合元素的语法:

set.update(obj)

其中,obj 是一个集合或序列对象(列表、元组、字符串)。

示例:添加单个集合项

在下面的示例中,我们初始化一个名为“my_set”的集合。然后,我们使用 update() 方法向集合添加元素“4”:

# Define a set
my_set = {1, 2, 3}

# Adding element to the set
my_set.update([4])
# Print the updated set
print("Updated Set:", my_set)

以下是上述代码的输出:

Updated Set: {1, 2, 3, 4}

示例:添加任何序列对象作为集合项

update() 方法也接受任何序列对象作为参数。

在这个示例中,我们首先定义了两个集合 lang1 和 lang2,分别包含不同的编程语言。然后,我们使用 update() 方法将“lang2”中的所有元素添加到“lang1”中:

# Defining a set
lang1 = {"C", "C++", "Java", "Python"}
# Defining a tuple
lang2 = {"PHP", "C#", "Perl"}
lang1.update(lang2)
print (lang1)

获得的结果如下所示:

{'Python', 'C++', 'C#', 'C', 'Java', 'PHP', 'Perl'}

示例

在这个示例中,从字符串构造一个集合,并使用另一个字符串作为 update() 方法的参数:

set1 = set("Hello")
set1.update("World")
print (set1)

它将产生以下输出:

{'H', 'r', 'o', 'd', 'W', 'l', 'e'}

使用并集运算符添加集合项

在 Python 中,并集运算符(|)用于对两个集合执行并集操作。两个集合的并集包含这两个集合中存在的全部唯一元素,不包含任何重复元素。

我们可以使用并集运算符通过使用“|”运算符或 union() 函数对两个集合执行并集操作来添加集合项,该函数将两个集合中的元素组合到一个新集合中,该集合包含这两个原始集合中存在的全部唯一元素。

示例

以下示例使用 union() 方法和 | 运算符组合集合,以创建包含原始集合中唯一元素的新集合:

# Defining three sets
lang1 = {"C", "C++", "Java", "Python"}
lang2 = {"PHP", "C#", "Perl"}
lang3 = {"SQL", "C#"}

# Performing union operation 
combined_set1 = lang1.union(lang2)
combined_set2 = lang2 | lang3

# Print the combined set
print ("Combined Set1:", combined_set1)
print("Combined Set2:", combined_set2)

以上代码的输出如下所示:

Combined Set1: {'C#', 'Perl', 'C++', 'Java', 'PHP', 'Python', 'C'}
Combined Set2: {'C#', 'Perl', 'PHP', 'SQL'}

示例

如果将序列对象作为 union() 方法的参数传递,Python 会自动将其首先转换为集合,然后执行并集操作:

lang1 = {"C", "C++", "Java", "Python"}
lang2 = ["PHP", "C#", "Perl"]
lang3 = lang1.union(lang2)
print (lang3)

产生的输出如下:

{'PHP', 'C#', 'Python', 'C', 'Java', 'C++', 'Perl'}

使用集合推导式添加集合项

在 Python 中,集合推导式是一种使用一行代码创建集合的方法。它允许你通过对可迭代对象(例如列表、元组或范围)中的每个项目应用表达式来生成一个新的集合,还可以选择性地包含一个条件来过滤元素。

我们可以通过迭代可迭代对象、对每个元素应用表达式并将推导式表达式括在花括号 {} 中来使用集合推导式添加集合项,从而生成一个新的集合,其中包含应用于每个元素的表达式的结果。

示例

在下面的示例中,我们定义了一个整数列表,然后使用集合推导式生成一个包含这些整数平方的集合:

# Defining a list containing integers
numbers = [1, 2, 3, 4, 5]
# Creating a set containing squares of numbers using set comprehension
squares_set = {num ** 2 for num in numbers}
# Printing the set containing squares of numbers
print("Squares Set:", squares_set)

以下是上述代码的输出:

Squares Set: {1, 4, 9, 16, 25}
广告