Поиск по сайту:
Понимание — начало согласия (Б. Спиноза).

Как создать 2D массив с помощью списка в Python

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
29.10.2019

Если по какой-то причине вы хотите создать двумерный массив в Python и не хотите использовать внешние пакеты, такие как numpy и т. д., Наиболее очевидная вещь – написать такой код:

>>> n = 3
>>> m = 4
>>> ara = [[0] * m] * n
>>> ara
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

 

Но есть проблема. Проверьте код ниже

>>> ara[0][0] = 1
>>> ara
[[1, 0, 0, 0], [1, 0, 0, 0], [1, 0, 0, 0]]

На самом деле, когда вы делаете [0] * m, он возвращает ссылку на список, а когда вы умножаете его на n, эта же ссылка дублируется. Следовательно, вы видите изменение таким образом, которого вы не ожидали.

Правильный способ сделать это – добавить [0] * m, n раз в массив. Вы можете закодировать это несколькими способами. Наш предпочтительный способ:

>>> ara = [[0] * m for _ in range(n)]

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Спасибо!

Теперь редакторы в курсе.