Python 简明教程

Python - Loop Sets

Loop Through Set Items

在 Python 中循环遍历 set 项目是指迭代集合中的每个元素。我们稍后可以对每个项目执行所需的运算。这些运算包括列印列表元素、条件运算、过滤元素等。

与列表和元组不同,集合是无序集合,因此元素将按照任意顺序访问。你可以使用 for loop 迭代集合中的项目。

Loop Through Set Items with For Loop

Python 中的 for 循环用于遍历序列(如列表、元组、字典、字符串或范围)或任何其他可迭代对象。它允许您为序列中的每个项目重复执行一个代码块。

在 for 循环中,你可以使用一个变量访问序列中的每个项目,这让你可以基于该项目的 value 执行运算或逻辑。我们可以使用 for 循环迭代集合项目,方法是迭代集合中的每个项目。

Syntax

以下是使用 Python 中的 for 循环迭代集合中的项目的语法:

for item in set:
   # Code block to execute

Example

在以下示例中,我们正在使用 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)

Output

以下是上面代码的输出: -

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

Loop Through Set Items with While Loop

Python 中的 while 循环用于重复执行一段代码块,只要一个指定的条件计算为“True”。

我们可以通过将集合转换为迭代器,然后迭代每个元素直至迭代器到达集合末尾,从而使用 while 循环迭代集合项目。

Example

在下面的示例中,我们正在使用迭代器和 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

Output

上述代码的输出如下:

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

Iterate using Set Comprehension

在 Python 中,集合推导式是通过迭代可迭代对象并选择性应用条件来创建集合的一种简洁方式。它用于生成集合,其语法类似于列表推导式,但结果是一个集合,确保所有元素都是唯一的和无序的。

我们可以通过在花括号 {} 内定义集合推导式表达式并在表达式中指定迭代和条件逻辑来使用集合推导式进行迭代。以下为语法:

result_set = {expression for item in iterable if condition}

其中,

  1. expression − 它是对可迭代对象中的每个项目求值的表达式。

  2. item − 它是表示可迭代对象中每个元素的变量。

  3. iterable − 它是要迭代的集合(例如列表、元组、集合)。

  4. condition − 它是要过滤掉结果集合中包含的元素的可选条件。

Example

在此示例中,我们正在使用集合推导式从原始列表“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)

Output

我们得到了如下输出 −

{16, 4}

Iterate through a Set Using the enumerate() Function

Python中的enumerate()函数用于遍历可迭代对象,同时还提供每个元素的索引。

我们可以通过将集合转换为列表,然后再对 enumerate() 进行应用以遍历元素及其索引位置,从而使用 enumerate() 函数对集合进行迭代。以下是语法:

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

Example

在以下示例中,我们首先将集合转换为列表。然后,我们使用带有 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)

Output

下面显示了产生的输出:

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

Loop Through Set Items with add() Method

Python 中的 add() 方法用于向集合中添加单个元素。如果集合中已经存在该元素,则集合保持不变。

要遍历集合项,我们使用 for 循环或集合推导等方法。

Example

在此示例中,我们遍历一个数字序列,并使用 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}