@numb7

Как создать многомерный список в Python?

Как создать многомерный список, чтобы получилось n списков? Мое решение позволяет получить n - элементов.

Мое решение:
n = 3
m = 2
a = [0] * n
for i in range(n):
    a[i] = [0] * m
print(a)

Текущий ответ: [[0, 0], [0, 0], [0, 0]].
Ответ, который должен получиться: [[[0, 0], [0, 0]], [[0, 0], [0, 0]]].
  • Вопрос задан
  • 914 просмотров
Пригласить эксперта
Ответы на вопрос 2
Vindicar
@Vindicar
RTFM!
Т.е. тебе нужно N уровней вложенности, но что насчёт размера? Он всегда 2, по каждой оси - т.е. 2х2 для двухмерного списка, 2х2х2 для трёхмерного и т.д.?
Если да, то могу подсказать. Первое измерение ты генерируешь правильно через [0] * k (где k - размер списка по последней оси).
А вот дальше можно легко добавить ещё одно измерение такой конструкцией:
a = [a.copy() for i in range(k)]
Так как мы делаем copy(), каждый вложенный список будет отдельным объектом, а не ссылками на один и тот же объект.
Это добавление одного измерения. Как добавить столько, сколько нужно, догадаешься сам, я думаю.
Ответ написан
@PavelMos
Нужен 3-мерный список, то есть массив вложенный в массив вложенный в массив ?
Тогда нужно 3 прохода- через for, через генератор списков, через генератор вложенных списков. Необязательно три за раз, можно 1+2 или 2+1

s=[ [ [0 for x in range (0,2)] for y in range (0,2) ] for z in range (0,2)]

Out[20]: [[[0, 0], [0, 0]], [[0, 0], [0, 0]]]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы