我想在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