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}
廣告