python for循环中特殊情况的减量



在特殊情况下,我需要在python for循环中递减(或者不递增)。

在类c语言中,这可以很容易地通过递减索引来完成,或者如果你有一个类似迭代器的结构,你可以直接"递减"。迭代器。但是我不知道如何在python中实现这一点。

一种解决方案是手动创建一个while循环并自增,但在我的情况下,这会带来许多额外的情况,当我可以自减时只需要一个情况。

C例子
for (int i = 0; i < N; ++i) {
if (some_condition) {
i--;
}
}

Python等效h5> div class="one_answers">您可以自己创建一个迭代循环。您可以轻松地添加独立于next调用的循环索引,因此您甚至可以使用使用当前索引的跳过条件。

skip_iteration = True
it = iter(range(10))
iterating = True
value = next(it)
while iterating:
try:
print(value, end=' ')
if skip_iteration:
# iteration skip code
skip_iteration = False
else:
# normal iteration code
value = next(it)
except StopIteration:
iterating = False

这里只跳过第一次迭代,它输出:

0 0 1 2 3 4 5 6 7 8 9

此代码依赖于next函数在到达迭代器末端时引发StopIteration的事实。

如果if语句中的条件与迭代器i本身有关,则循环可能不会结束,但如果条件不依赖于i,则不会有任何问题

您也可以尝试使用continue跳过特定的迭代。

相关内容

最新更新