迭代列表直到条件 python

Iterate list till condition python

我需要迭代列表直到满足条件。 我想要最pythonic的方式来编写这段代码。

for i in list:
   if condition(i):
      foo(i)
   else:
      break

你有的很好,但是对于更大的循环体,我会使用提前退出守卫:

for i in list:
   if not condition(i):
      break
   foo(i)

这有两个好处:

  1. 少一级缩进。更容易遵循代码。
  2. break现在已经接近属于它的状态了。否则,在阅读代码时,当您看到 break 时,您需要回过头来记住 何时发生