Создать пустой список списков в python - PullRequest
0 голосов
/ 21 марта 2020

Я хотел бы создать в python список, который внутри имеет 3 списка, каждый из которых имеет 2 вектора по 4 элемента, что-то вроде этого:

[[[0,0,0,0],[0,0,0,0]], 
 [[0,0,0,0],[0,0,0,0]], 
 [[0,0,0,0],[0,0,0,0]]]

Это простой пример, но Я хотел бы автоматизировать его, чтобы иметь возможность создавать подобный объект с гораздо большим количеством элементов.

Я попытался сделать это следующим образом:

grid=[np.zeros((2,4)) for x in range(3)]
grid

Однако, когда я его распечатываю, результат выглядит примерно так

[array([[0., 0., 0., 0.],
        [0., 0., 0., 0.]]), array([[0., 0., 0., 0.],
        [0., 0., 0., 0.]]), array([[0., 0., 0., 0.],
        [0., 0., 0., 0.]])]

Структура должна быть в порядке , но я не знаю, является ли тот факт, что он говорит массив нормально, или я сделал что-то не так.

Заранее спасибо за помощь

1 Ответ

1 голос
/ 21 марта 2020

Здесь у вас есть список 2D np.array, если вы хотите, чтобы list из list из lists:

grid = [[[0 for _ in range(4)] for _ in range(2)] for _ in range(3)]

Следующее создаст ту же структуру, но каждый подсписок будет быть скопированным, таким непригодным для использования (см. Список отраженных изменений списков )

grid = [[[0] * 4] * 2] * 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...