今天我发现一个有趣的事实,我无法在“for 循环”中重新分配变量,但为什么呢?
这是我的代码:
>>> my_list = [1,2,3,4,5]
>>> for i in my_list:
>>> if i > 3:
>>> i = 'my_value'
>>> my_list
[1, 2, 3, 4, 5]
当您循环遍历列表时for i in my_list
, i
每次迭代时不绑定到列表单元格。它绑定到列表单元格引用的对象。分配一个新值i
binds i
到一个新对象,但之间没有链接i
以及会导致列表单元格受到影响的列表。
循环列表的等效方法是
for index in range(len(my_list)):
i = my_list[index]
whatever_loop_body()
希望这个表述能更清楚地表明i
不是列表单元格的别名。 (实际上不要循环这样的列表。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)