Просто вложите синтаксис умножения:
[[[0] * 3] * 3] * 3
Поэтому эту операцию просто выразить, используя folds
def zeros(dimensions):
return reduce(lambda x, d: [x] * d, [0] + dimensions)
Или, если вы хотите избежать репликации ссылокпоэтому изменение одного элемента не повлияет на любой другой, вместо этого следует использовать копии:
import copy
def zeros(dimensions):
item = 0
for dimension in dimensions:
item = map(copy.copy, [item] * dimension)
return item