Python - 添加 Set Items



添加 Set Items

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

您可以使用各种方法将项目添加到集合中,例如 add()、update() 或 set 操作,例如 union (|) 和 set comprehension。

集合的定义特征之一是它们能够只保存不可变(可哈希)对象。这是因为 sets 在内部使用哈希表进行快速成员资格测试。不可变对象是可哈希的,这意味着它们的哈希值在其生命周期内永远不会改变。

使用 add() 方法添加 Set 项

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() 方法添加 Set 项

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

语法

以下是将元素更新为集合的语法 -


set.update(obj)

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

示例:添加单个 Set 项目

在下面的示例中,我们初始化一个名为 “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}

示例:将任何 Sequence 对象添加为 Set Items

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'}

使用 Union 运算符添加设置项

在 Python 中,union 运算符 (|) 用于在两个集合之间执行 union 操作。两个集的并集包含任一集中存在的所有不同元素,没有任何重复项。

我们可以通过使用 “|” 运算符或 union() 函数在两个集合之间执行联合操作来使用 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 会先自动将其转换为集合,然后执行 union -


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

生成的输出如下 -

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

使用 Set Comprehension 添加 Set 项

在 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}