Я пытаюсь создать 3-мерное N N N список в Python, как например:Проблема создания 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-тик-таку. –