Why value of input list is getting changed?
本问题已经有最佳答案,请猛点这里访问。
因为我不知道应该给我的这个困惑赋予什么头衔,所以我只是怀疑一下
1 2 3 4 5 6 7 8 9 10 | a = [1,2,3,4,5] b = a for i in range(len(a)): c = (i - 4) print(a) print(b) b[c] = a[i] print(a) print(b) |
输出
1 2 3 4 5 6 7 8 9 | [1, 2, 3, 4, 5] [1, 2, 3, 4, 5] [1, 1, 3, 4, 5] [1, 1, 3, 4, 5] [1, 1, 3, 4, 5] [1, 1, 3, 4, 5] [1, 1, 1, 4, 5] [1, 1, 1, 4, 5] ... |
为什么列表EDOCX1[0]的值进入循环的每个步骤?
你的问题在于这一行:
1 | b = a |
这并不像你想象的那样。特别是,它不复制
强制执行应复制的一种方法是使用slice语法:
1 | b = a[:] |