这是我的代码,我无法弄清楚这两个列表列表之间的区别:
cow = 1
column = 1
size = 3
board1=[[0,0,0],[0,0,0],[0,0,0]]
print board1
board2=[[0] * size] * size
print board2
if board1==board2: print 'same'
board1[cow][column] =1
board2[1][2] =1
print "Board 1 is :", board1
print "Board 2 is :", board2
结果:
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
same
Board 1 is : [[0, 0, 0], [0, 1, 0], [0, 0, 0]]
Board 2 is : [[0, 1, 0], [0, 1, 0], [0, 1, 0]]
答案 0 :(得分:2)
__setitem__
内部列表生成并指向内存中的位置。
外部列表是通过在列表中放入对内部列表的三个引用来实现的。
对内部列表的更改会更改所有其他内部列表,因为它们指向内存中的相同数据。
要在创建列表
后显示此内容board2=[[0] * size] * size
如果两个对象在内存中都是相同的对象,则is运算符返回true。