В искусстве отсутствие недостатков не есть достоинство (Э. Фаге).

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

FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
29 октября 2019
AndreyEx. Logotip
Если по какой-то причине вы хотите создать двумерный массив в 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.

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

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

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close