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