Python 在for循环中干扰迭代
我只是一个初学者,只是想问一下,在for循环中使用迭代器是否可以接受/好的代码。 示例(python):Python 在for循环中干扰迭代,python,iteration,Python,Iteration,我只是一个初学者,只是想问一下,在for循环中使用迭代器是否可以接受/好的代码。 示例(python): 我没有任何问题,我的代码看起来像这样运行得很好,但我不确定这是否算是“好”代码。您不会弄乱迭代器-您只需创建一个同名变量并对其进行处理 >>> for a in range(5): ... print id(a) ... print a ... a -= 1 ... print id(a) ... print ... 24822128 0 248221
我没有任何问题,我的代码看起来像这样运行得很好,但我不确定这是否算是“好”代码。您不会弄乱迭代器-您只需创建一个同名变量并对其进行处理
>>> for a in range(5):
... print id(a)
... print a
... a -= 1
... print id(a)
... print
...
24822128
0
24822152
24822104
1
24822128
24822080
2
24822104
24822056
3
24822080
24822032
4
24822056
正如您所看到的,这些变量是不同的,循环显然迭代了5次
这是一个好的练习吗否。这是一种与实际相反的东西,正如我们应该预料的那样,在一个循环中,“a”在每一行中的意思是相同的。您应该以不同的方式命名变量,如
>>> for a in range(10):
... print a
... b = a - 1
如果你想实际影响循环次数,你应该使用
而不是循环。你给出的代码是可以接受的,但不是特别有效。无论是否修改i
,循环都将运行相同的次数
>>> for i in range(5):
>>> i = i - 1
>>> print(i)
-1
0
1
2
3
当您修改变量i
时,它会创建一个新的变量,与控制循环的变量分开。我认为修改迭代器的当前值很好,就像修改一个新变量一样。但我不建议像这样修改迭代器本身
my_list = [1, 2, 3, 4]
for i in my_list:
my_list.append(i+4)
将生成一个无限循环它不会对您的实际迭代做任何事情,它只会使i
引用其他变量。也就是说,无论您将i
设置为与语法问题部分相等,它仍将运行n
多次。范围(n)
之后缺少:
,如果块,则缺少的意图
my_list = [1, 2, 3, 4]
for i in my_list:
my_list.append(i+4)