【发布时间】:2017-04-28 15:39:36
【问题描述】:
array1 = [[0]*4]*4
array2 = [[0,0,0,0]]*4
array3 = [[0,0,0,0],
[0,0,0,0],
[0,0,0,0],
[0,0,0,0]]
array1[0][0] = 9000
array2[0][0] = 9000
array3[0][0] = 9000
In [77]: array1
Out[77]: [[9000, 0, 0, 0],
[9000, 0, 0, 0],
[9000, 0, 0, 0],
[9000, 0, 0, 0]]
In [78]: array2
Out[78]: [[9000, 0, 0, 0],
[9000, 0, 0, 0],
[9000, 0, 0, 0],
[9000, 0, 0, 0]]
In [79]: array3
Out[79]: [[9000, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]]
改变任何行值会改变初始化快捷方法的所有行值。
我可以获得非变异行为的唯一方法是写出整个列表。
一定有更好的方法(?),想想你想根据不同列表的长度来初始化列表的情况。
【问题讨论】: