Двумерные массивы в Python и методы работы с ними

Иногда нам приходится использовать таблицы с данными для решения своих задач. Такие таблицы называются матрицами или двумерными массивами.

В Python подобные таблицы можно представить в виде списка, элементы которого являются другими списками. Для примера создадим таблицу с тремя столбцами и тремя строками, заполненными произвольными буквами:

 mas = [['й', 'ц', 'у'], ['к','е','н'], ['г', 'ш', 'щ']]  #Вывод всего двумерного массива  print(mas)  #Вывод первого элемента в первой строке  print(mas[0][0]) # Выведет й  #Вывод третьего элемента в третьей строке  print(mas[2][2]) # Выведет щ  

Создание двумерных массивов

Создать такой массив в Python можно разными способами. Разберем первый:

 # Создание таблицы с размером 3x3, заполненной нулями a = 3            mas = [0] * a  for i in range(a):      mas[i] = [0] * a  print(mas) # Выведет [[0, 0, 0], [0, 0, 0], [0, 0, 0]]     

Второй способ предполагает создание пустого списка с добавлением в него новых списков. Рассмотрим на примере:

 # Создание таблицы с размером 2x2, заполненной единицами
 a = 2 mas = []  for i in range(a):      mas.append([0] * a) print(mas) # Выведет [[1, 1, 1], [1, 1, 1], [1, 1, 1]]                                  

Третьим и самым простым способом является генератор списков с x строками, которые будут состоять из y элементов. Пример: 

 # Создание таблицы с размером 3x3, заполненной двойками a = 3 mas = [[2] * a for i in range(a)] print(mas) # Выведет [[2, 2, 2], [2, 2, 2], [2, 2, 2]] 

Способы ввода двумерных массивов

Допустим, нам нужно ввести двумерный массив после запуска нашей программы. Для этого мы можем создать программу, которая будет построчно считывать значения нашего массива, а также количество строк в нем. Рассмотрим на примере:

 a=int(input()) mas = []  for i in range(a):      mas.append(list(map(int, input().split()))) print(mas)  

Запускаем программу и сначала вводим количество строк в массиве (допустим, 3). Далее вводим строки в порядке их очереди. Например:

 1 1 1 1 1 1 1 1 1 

После этого данная программа выведет наш двумерный массив: [[1, 1, 1], [1, 1, 1], [1, 1, 1]].

То же самое можно сделать с помощью генератора двумерных массивов:

 mas = [list(map(int, input().split())) for i in range(int(input()))] # Вводим  3 1 1 1 1 1 1 1 1 1 print(mas) # Выведет [[1, 1, 1], [1, 1, 1], [1, 1, 1]] 

Вывод двумерных массивов

Для обработки и вывода списков используются два вложенных цикла. Первый цикл – по порядковому номеру строки, второй – по ее элементам. Например, вывести массив можно так:

 mas = [[1, 1, 1], [1, 1, 1], [1, 1, 1]] for i in range(0, len(mas)):     for i2 in range(0, len(mas[i])):         print(mas[i][i2], end=' ')     print() # Выведет 1 1 1 1 1 1 1 1 1 

То же самое можно сделать не по индексам, а по значениям массива:

 mas = [[1, 1, 1], [1, 1, 1], [1, 1, 1]] for i in mas:      for i2 in i:          print(i2, end=' ')      print() # Выведет 1 1 1 1 1 1 1 1 1 

Способ с использованием метода join():

 mas = [[1, 1, 1], [1, 1, 1], [1, 1, 1]] for i in mas:      print(' '.join(list(map(str, i)))) # Выведет 1 1 1 1 1 1 1 1 1 

Вывод одной из строк двумерного массива можно осуществить с помощью цикла и того же метода join(). Для примера выведем вторую строку в произвольном двумерном массиве:

 mas = [[1, 1, 1], [2, 2, 2], [3, 3, 3]] string = 2 for i in mas[string-1]:     print(i, end=' ') # Выведет 1 1 1 

Для вывода определенного столбца в двумерном массиве можно использовать такую программу:

 mas = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] column = 2 for i in mas:     print(i[column-1], end=' ') # Выведет 2 5 8 

Обработка двумерных массивов

Составим произвольный двумерный массив с числами и размерностью 4×4:

 2 4 7 3 4 5 6 9 1 0 4 2 7 8 4 7 

Теперь поставим числа в каждой строке по порядку:

 mas = [[2, 4, 7, 3], [4, 5, 6, 9], [1, 0, 4, 2], [7, 8, 4, 7]] mas2 = [] for i in mas:     mas2.append(sorted(i)) print(mas2) # Выведет [[2, 3, 4, 7], [4, 5, 6, 9], [0, 1, 2, 4], [4, 7, 7, 8]] 

А теперь расставим все числа по порядку, вне зависимости от их нахождения в определенной строке:

 mas = [[2, 4, 7, 3], [4, 5, 6, 9], [1, 0, 4, 2], [7, 8, 4, 7]] mas2 = [] for i in mas:     for i2 in i:         mas2.append(i2) mas=sorted(mas2) for x in range(0, len(mas), 4):     e_c = mas[x : 4 + x]     if len(e_c) < 4:         e_c = e_c + [None for y in range(n - len(e_c))]     print(list(e_c)) # Выведет [0, 1, 2, 2] [3, 4, 4, 4] [4, 5, 6, 7] [7, 7, 8, 9] 

Итог

Мы разобрались в основах двумерных массивов в Python, научились создавать, вводить и выводить их, а также рассмотрели примеры обработки. Надеюсь, статья оказалась полезной для вас!

Межтекстовые Отзывы
Посмотреть все комментарии
guest

Как безопасно удалить неиспользуемый CSS в WordPress

Разработка #Плагины #WordPress #HTML/CSS #Оптимизация Неиспользуемый CSS – это код, который загружается при открытии страницы, но фактически не...

Что такое Progressive Web Apps и в чем их преимущества

Разработка #Программы #JavaScript #HTML/CSS #Оптимизация Progressive Web Apps (PWA) — это сайты, которые похожи на приложения для смартфонов не только...

Что такое скрам-доска

Разработка #Программы #Обзор #Менеджмент #Оптимизация Поговорим об одном из наиболее часто используемых инструментов для повышения эффективности команды.  Что такое...

В Windows 11 добавится поддержка USB 4 2.0 со скоростью передачи данных до 80 Гбит/с

Новости #Обновления #Windows Реклама. ООО «ТаймВэб». erid: LjN8K8PQJ Корпорация Microsoft начала распространять пакет функциональных обновлений KB5034848 для Windows 11...

PHP: работа с БД MySQL

Разработка #Серверы #MySQL #PHP #Базы данных Базы данных используются для удобного хранения информации, а также для её структурирования....

Обзор Vue.js

Разработка #Фреймворки #Обзор #JavaScript Vue.js или просто Vue – это прогрессивный JavaScript-фреймворк, который используется для создания пользовательских интерфейсов....

Виды алгоритмов сортировки в Python

Разработка #Обзор #Редакторы кода #Python В одной из прошлых статей я рассматривал списки в Python, а также затронул их сортировку....

Криптопрограммирование: особенности и перспективы

Разработка #Криптовалюта #Фреймворки #Обзор #Технологии Разработка – перспективное и денежное направление. Эта сфера привлекает все больше людей, даже...

Руководство по разработке приложений: как сделать приложение для iOS и Android самостоятельно

Разработка #Конверсия #Подборка #Разбор #UX/UI #Конструктор Разработка мобильного приложения от А до Я – это довольно долгая и...

Авторское право на код – как работает, когда защищает и как его зарегистрировать

Разработка #Программы #Законы #Разбор Поговорим о том, как работает авторское право на код в России и за рубежом....

GitHub включил по умолчанию механизм защиты от утечек данных

Новости #GitHub #Сервисы #Безопасность Реклама. ООО «ТаймВэб». erid: LjN8K4hV8 Сервис GitHub включил защиту от попадания в публичный репозиторий приватных...

10 лучших HTML-редакторов

Разработка #Программы #Редакторы кода #Подборка #HTML/CSS Рассматриваем лучшие приложения для работы с HTML-разметкой. Узнаем, чем пользуется верстальщик с глубокими познаниями...

Как стать геймдизайнером: начало пути

Разработка #Карьера #Менеджмент #Игры Поговорим о том, кто такой геймдизайнер, чем он занимается и как им стать. Чем...

Как вставить картинку в HTML

Разработка #Авторское право #Фото/Видео #Редакторы кода #HTML/CSS Невозможно представить ни один сайт без визуальной составляющей, в часть которой...

Как создать сайт на WordPress с нуля

Разработка #Настройка #WordPress #Базы данных #Оптимизация Поговорим о том, как создать сайт на базе WordPress и Timeweb. Сайт,...

Как легально увеличить лайки в Ютубе?

Лайки в Youtube и легальные способы их увеличить. Чего не стоит делать при накрутке реакций, и как сделать...

Как открыть закрытые вкладки в Google Chrome

Все мы хотя бы раз случайно закрывали вкладку в браузере и тут же испытывали сожаление. Но есть несколько...

Преимущества и недостатки WordPress

Разработка #Обзор #WordPress WordPress довольно старая система управления содержимым сайтов (сокращенно — CMS), вебмастера и администраторы с ней...

Как создать туристический сайт

Разработка #Веб-дизайн #Контент #Конструктор Туристический сайт – это важный интернет-источник для людей, планирующих путешествия. Его основная цель – познакомить...

Pagekit – open source CMS от Yootheme

Разработка #Шаблоны #JavaScript #HTML/CSS #PHP #Оптимизация Тенденция, однако. Разработчики клубных шаблонов начинают создавать собственные CMS. Примерно год назад...