在典型的类C语言中,for循环使您可以更好地控制迭代。我想知道如何做等效的
for(int i = 0; i < A.length; i++) {
do_things(A[i]);
if (is_true(i)) {
i--;
}
}
在Python中?
在其他语言中,我选择使用基于容器的循环结构,但它们通常具有vanilla for循环,我可以在这种情况下使用它。如何获得更多&#34;控制&#34;在Python中迭代时?
我想这个问题的答案非常基础,但搜索条款与其他问题混淆不清。
答案 0 :(得分:1)
Python中最好的等价物是while
- 循环:
i = 0
while i < A.length: # If `A` is a regular Python container type, use `len()`
do_things(A[i])
if is_true(i):
i -= 1
i += 1
但是请注意,正如评论中所述,在容器上迭代这样做通常是一个坏主意。您应该检查您的代码并确保您确实需要这种行为。
修改强>
这只是对循环的一个草率解释,在满足某些条件之前不会继续下一个元素。我没有解释清楚,我猜
然后使用continue
。减少i
是错误的行为:
i = 0
while i < A.length:
do_things(A[i])
if not is_true(i):
continue
i += 1
更好的是,您可以放弃while
- 循环并使用enumerate
:
for i, el in enumerate(A):
if not is_true(el):
continue
# do work