Python - 迴圈集合



遍歷集合項

在 Python 中遍歷集合項是指迭代集合中的每個元素。之後我們可以對每個專案執行所需的運算。這些操作包括列出列印元素、條件操作、過濾元素等。

與列表和元組不同,集合是無序的集合,因此元素將以任意順序訪問。您可以使用for迴圈來迭代集合中的項。

使用 For 迴圈遍歷集合項

Python 中的 for 迴圈用於迭代序列(如列表、元組、字典、字串或範圍)或任何其他可迭代物件。它允許您為序列中的每個專案重複執行一段程式碼。

在 for 迴圈中,您可以使用變數訪問序列中的每個專案,從而允許您根據該專案的價值執行操作或邏輯。我們可以使用 for 迴圈遍歷集合項,方法是迭代集合中的每個項。

語法

以下是使用 Python 中的 for 迴圈遍歷集合中的項的基本語法:

for item in set:
   # Code block to execute

示例

在以下示例中,我們使用 for 迴圈迭代集合“my_set”中的每個元素並檢索每個元素:

# Defining a set with multiple elements
my_set = {25, 12, 10, -21, 10, 100}

# Loop through each item in the set 
for item in my_set:
   # Performing operations on each element
   print("Item:", item)

輸出

以下是上述程式碼的輸出:

Item: 100
Item: 25
Item: 10
Item: -21
Item: 12

使用 While 迴圈遍歷集合項

Python 中的 while 迴圈用於重複執行一段程式碼,只要指定的條件計算結果為“True”。

我們可以使用 while 迴圈遍歷集合項,方法是將集合轉換為迭代器,然後迭代每個元素,直到迭代器到達集合的末尾。

迭代器是一個物件,允許你遍歷集合(例如列表、元組、集合或字典)中的所有元素,每次一個元素。

示例

在下面的示例中,我們使用迭代器和 while 迴圈遍歷一個集合。 "try" 程式碼塊檢索並列印每個專案,而 "except StopIteration" 程式碼塊在沒有更多專案可獲取時中斷迴圈 -

# Defining a set with multiple elements
my_set = {1, 2, 3, 4, 5}

# Converting the set to an iterator
set_iterator = iter(my_set)

# Looping through each item in the set using a while loop
while True:
   try:
      # Getting the next item from the iterator
      item = next(set_iterator)
      # Performing operations on each element
      print("Item:", item)
   except StopIteration:
      # If StopIteration is raised, break from the loop
      break

輸出

以上程式碼的輸出如下所示 -

Item: 1
Item: 2
Item: 3
Item: 4
Item: 5

使用集合推導式迭代

Python 中的集合推導式是一種簡潔的方式,透過迭代可迭代物件並可選地應用條件來建立集合。它用於使用類似於列表推導式的語法生成集合,但結果為一個集合,確保所有元素都是唯一的且無序的。

我們可以透過在花括號 {} 中定義一個集合推導式表示式,並在表示式中指定迭代和條件邏輯來使用集合推導式進行迭代。以下是語法 -

result_set = {expression for item in iterable if condition}

其中,

  • 表示式 - 它是在可迭代物件中每個專案上求值的表示式。

  • 專案 - 它是一個表示可迭代物件中每個元素的變數。

  • 可迭代物件 - 它是要迭代的集合(例如,列表、元組、集合)。

  • 條件 - 它是一個可選的條件,用於過濾包含在結果集合中的元素。

示例

在這個例子中,我們使用集合推導式來生成一個集合,該集合包含原始列表 "numbers" 中偶數的平方 -

# Original list
numbers = [1, 2, 3, 4, 5]

# Set comprehension to create a set of squares of even numbers
squares_of_evens = {x**2 for x in numbers if x % 2 == 0}
# Print the resulting set
print(squares_of_evens)

輸出

我們得到如下所示的輸出 -

{16, 4}

使用 enumerate() 函式遍歷集合

Python 中的 enumerate() 函式用於迭代可迭代物件,同時提供每個元素的索引。

我們可以透過將集合轉換為列表,然後應用 enumerate() 來迭代元素及其索引位置,從而使用 enumerate() 函式遍歷集合。以下是語法 -

for index, item in enumerate(list(my_set)):
   # Your code here

示例

在下面的示例中,我們首先將一個集合轉換為列表。然後,我們使用帶有 enumerate() 函式的 for 迴圈遍歷列表,檢索每個專案及其索引 -

# Converting the set into a list
my_set = {1, 2, 3, 4, 5}
set_list = list(my_set)

# Iterating through the list 
for index, item in enumerate(set_list):
   print("Index:", index, "Item:", item)

輸出

生成的輸出如下所示 -

Index: 0 Item: 1
Index: 1 Item: 2
Index: 2 Item: 3
Index: 3 Item: 4
Index: 4 Item: 5

使用 add() 方法迴圈遍歷集合專案

Python 中的 add() 方法用於向集合中新增單個元素。如果該元素已存在於集合中,則集合保持不變。

我們不能直接使用 add() 方法迴圈遍歷集合專案,因為 add() 特別用於向集合中新增單個元素,而不是迭代現有元素。

要迴圈遍歷集合專案,我們使用諸如 for 迴圈或集合推導式之類的方法。

示例

在這個例子中,我們迴圈遍歷一系列數字,並使用 add() 方法將每個數字新增到集合中。迴圈迭代現有元素,而 add() 方法將新元素新增到集合中 -

# Creating an empty set
my_set = set()  

# Looping through a sequence and adding elements to the set
for i in range(5):
   my_set.add(i)
print(my_set)  

它將產生以下輸出 -

{0, 1, 2, 3, 4}
廣告