这是我遇到的一个非常小众的情况,但我需要在多个嵌套的 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 循环吗?
编辑:注释掉不是代码的行