可能重复:
Python List Index
result=[range(3)]*2
for i in range(len(result)):
result[i][2]=4*i
print result
我希望[[0, 1, 0], [0, 1, 4]]
为什么我会[[0, 1, 4], [0, 1, 4]]
谢谢!
答案 0 :(得分:0)
执行[range(3)] * 2
时,它会生成一个列表,其中包含两个对相同列表的引用,因此修改result[0]
和result[1]
都会修改它们。< / p>
使用[range(3) for i in range(2)]
制作一个列表,其中包含range(3)
的两个不同结果。
答案 1 :(得分:0)
含义:
第一次: 导致[0] [2] = 4 * 0
第二次: 导致[1] [2] = 4 * 1
给出结果[[0,1,4],[0,1,4]]
这就是一步一步做的事。
如果在迭代中添加“break”,则会看到结果为[[0,1,0],[0,1,0]]
“结果”列表以引用方式工作。当它被调用时,它指向同一个对象。