在嵌套的for循环中更改父for循环的迭代器值?

2024-05-20 02:45:02 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我试图用Python解决竞争性编程问题,遇到了一个需要使用嵌套循环的问题。我使用了嵌套for循环,如果子for循环中满足某些条件,则增加父for循环的迭代器的值。但当子for循环结束时,parent for loop的iterator值不变。在

示例:

for i in range(5):
    print "When i = %d" % (i)
    for j in range(i+1,5):
        print j
        if j % 2 == 0:
            i = j

输出:

^{pr2}$

当我想减少CPU时间和周期时,如何增加I的值并使循环运行更少?在


Tags: inloop示例for编程竞争性range条件
3条回答

我对变量作用域的断言可能是不正确的,但是不管怎样,for循环遵循循环变量定义,而与您如何在循环中定义循环变量无关。在

这里有一个你的脚本发生了什么的例子。无论您如何设置i,它仍将贯穿整个range(5)。在

In [1]: for i in range(5):
    print(i)
    i=10
    print(i)

Out [1]: 0
10 
1
10 
2
10 
3
10 
4
10 

您需要一个while循环,而不是for循环,这样就可以重新定义循环中的任何变量。如果我没弄错你的问题,我想你是在找这个:

^{pr2}$

在python中,如果要更改loopiteratorvalue,那么应该使用while loop。你的问题对你想要达到的目标还不够清楚,但举个例子:

i = 0
while i < 5:
    print "When i = %d" % (i)
    i+=1
    for j in range(i,5):
        print j
        if j % 2 == 0:
            i = j

您的问题还不够清楚,但是如果您想更改for循环,您应该直接考虑使用while循环

相关问题 更多 >