【问题标题】:python - How to move back an iteration in a for loop list [duplicate]python - 如何在for循环列表中移回迭代[重复]
【发布时间】:2016-10-07 11:02:51
【问题描述】:

给定列表:a = [1, 2, 3, 4 5]for 循环中,假设当前项为 2,下一项为 3。如果某些条件为真,如何使下一项再次为 2,这意味着迭代应该再次从 2 开始,而不是 3?

a = [1, 2, 3, 4, 5]

for item in a:
   print item
   if condition:
         do something, and go back to previous iterator

输出将是:

1
2
2
3
4
5

【问题讨论】:

  • 该副本的解决方案是不必要的通用,因为它通常处理迭代器的机制。对于列表,可以使用while 循环而不是for 轻松完成。
  • 你到底是什么意思?条件取决于什么?是否必须达到 3 才能确定必须再次使用 2?
  • See here too,如果这就是你的要求。

标签: python list python-2.7


【解决方案1】:

当心无限循环,它不是 Pythonic。

i = 0
a = [1, 2, 3, 4, 5]
hasBeenReset = False
while i < len(a):
    if a[i] == 3 and not hasBeenReset:
        i = 1
        hasBeenReset = True
    print(a[i])
    i += 1

【讨论】:

  • 这段代码是一个无限循环。
  • 我更新了输出,就像原始问题中的示例一样。
猜你喜欢
  • 2022-12-16
  • 1970-01-01
  • 1970-01-01
  • 2016-08-03
  • 1970-01-01
  • 1970-01-01
  • 2016-08-07
  • 1970-01-01
相关资源
最近更新 更多