0

这是我遇到的一个非常小众的情况,但我需要在多个嵌套的 for 循环中重用一个列表,并且还要避免重复。这是我正在尝试做的一个简化示例:

my_list = [7,1,4,2,6,5,3]
for x in my_list:
  for y in my_list:
    if y == x:
      #advance to the next item in my_list
    for z in my_list:
      while z == x or z == y:
        #advance to the next item in my_list
      #do stuff

我还想知道是否有比使用 while 循环更简洁的方法来避免重复,因为循环最多可以嵌套 9 次,所以它会使 while 循环变得混乱。我尝试使用 iter(my_list) 将 my_list 转换为迭代器,然后使用 y = next(my_list),这通常可以工作,但是下一个带有 z 的 for 循环不会从 my_list 的开头开始。我能想到的唯一解决方案是使用 while 循环而不是 for 循环,这样我就可以执行以下操作:

z = 0
while z < 7:
  while z == y or z == x:
    z += 1
  #do stuff with my_list[z]
  z += 1

如果可能的话,我真的很想避免这种方法。有什么方法可以使用 for 循环吗?

编辑:注释掉不是代码的行

4

1 回答 1

0

您可以使用passto 不做任何事情,例如:

L = [1, 2, 0, 4]
for element in L:
    if element == 0:
        pass
    else:
        print(element)

这将打印:1、2 和 4,因为它会跳过 0

如果要停止当前循环,请使用break

for element in L:
    if element == 0:
        break
    else:
        print(element)

这将打印出 1、2,然后循环停止。

所以,你使用哪一个取决于你想如何前进到下一个项目。break将停止当前的 for 循环并带您回到前一个 for 循环,whilepass将继续循环但不对该元素执行任何操作

于 2019-12-03T12:55:58.157 回答