Если по какой-то причине вы хотите создать двумерный массив в 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)]