Python 多维数组
Python 中初始化一个8*8的数组时,应该使用:Chess = [ for row in range(8)]
而初始化一个一维数组的时候,可以用:
Queen = * 8
但是初始化二维数组,也就是:
Chess = [ * 8] * 8
事实上得到的与前面不同,
因为 * 8一个一维数组的对象,
* 8 是把对象的引用复制了 8 次,
如果修改 Chess:
Chess = 'luaedge'
print Chess
得到的是:
[['luaedge', 0, 0, 0, 0, 0, 0, 0], ['luaedge', 0, 0, 0, 0, 0, 0, 0], ['luaedge', 0, 0, 0, 0, 0, 0, 0], ['luaedge', 0, 0, 0, 0, 0, 0, 0], ['luaedge', 0, 0, 0, 0, 0, 0, 0], ['luaedge', 0, 0, 0, 0, 0, 0, 0], ['luaedge', 0, 0, 0, 0, 0, 0, 0], ['luaedge', 0, 0, 0, 0, 0, 0, 0]]
如果用第一种的类似写法:
Chess = [ * 8 for row in range(8)]
Chess = 'luaedge'
print Chess
得到的将是:
[['luaedge', 0, 0, 0, 0, 0, 0, 0], , , , , , , ]
这是预想中的结果。
页:
[1]