为什么会这样?
版本 1:
mylist= [1,2,3,4,5]
print mylist
for index, value in enumerate(mylist):
value = 0
print mylist
版本 2:
mylist= [[1],[2],[3],[4],[5]]
print mylist
for index, value in enumerate(mylist):
value[0] = 0
print mylist
输出 1:
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
输出 2:
[[1], [2], [3], [4], [5]]
[[0], [0], [0], [0], [0]]
我假设这两个版本都会创建一个局部变量并且不会覆盖列表本身。我想在第二个版本中情况并非如此。我正在使用python 2.7。显然,我可以在 for 循环中使用另一个变量来生成另一个值的副本。我花了一些时间才弄清楚这一点,它弄乱了我的代码功能。
解决方案:
value = list(value)