我每次尝试为循环更新python的iterator变量的值时都会遇到此问题。只是不允许我更新变量。
for i in range(1,10):
print(i)
i=i+5
print(i)
The output turn out to be:
1
6
2
7
3
8
4
9
5
10
6
11
7
12
8
13
9
14
如果我想更新iterator变量,谁能给我这个输出的解释和我的问题的解决方案?
答案 0 :(得分:0)
range(1, 10)
是一个范围对象(如果是python 2,则列出该对象)。并且每次for循环开始时,都会将元素从该可迭代对象分配到i
变量中。然后循环继续。即使您在for循环中更新i
的值。当for循环再次开始时,它将重新分配给range对象返回的下一个元素。
因此,我认为您需要的是一个跳过5个数字的step参数。因此,您可以尝试这样的事情。
x = range(1, 10, 5)
,其中5作为步骤参数。