我想在Python中创建一个3维n ňñ列表,像这样:问题创造N * N在Python
n=3
l = [[[0,]*n]*n]*n
不幸的是,这似乎不正确“克隆”的名单,因为我认为它会:
>>> l
[[[0, 0, 0], [0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0], [0, 0, 0]]]
>>> l[0][0][0]=1
>>> l
[[[1, 0, 0], [1, 0, 0], [1, 0, 0]], [[1, 0, 0], [1, 0, 0], [1, 0, 0]], [[1, 0, 0], [1, 0, 0], [1, 0, 0]]]
我在做什么错在这里?
如果你期望做很多矩阵运算,你可以进入'numpy',但我喜欢使用由元组索引的字典作为多维数组:'from collections import defaultdict; d = defaultdict(int); d [0,0,0] = 1' - 它可能非常适合你的3D井字游戏。 – 2012-07-26 00:44:39