Python: двумерные и многомерные массивы | OTUS
⚡ Открываем подписку на курсы!
Проходите параллельно 3 онлайн-курса в месяц по цене одного.
Подробнее

Курсы

Программирование
Flutter Mobile Developer Подготовка к сертификации Oracle Java Programmer (OCAJP)
-8%
Алгоритмы и структуры данных
-12%
Web-разработчик на Python
-11%
Архитектура и шаблоны проектирования
-14%
JavaScript Developer. Basic Супер-интенсив «СУБД в высоконагруженных системах»
-18%
iOS-разработчик. Базовый курс
-23%
Разработчик на Spring Framework
-23%
Python Developer. Basic
-16%
C# ASP.NET Core разработчик
-18%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-6%
JavaScript Developer. Professional
-9%
Android Developer. Basic
-10%
C++ Developer. Professional MS SQL Server Developer Cloud Solution Architecture Highload Architect Reverse-Engineering. Professional CI/CD Vue.js разработчик Agile Project Manager Нереляционные базы данных Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Advanced Fullstack JavaScript developer
Инфраструктура
PostgreSQL
-10%
IoT-разработчик
-12%
Administrator Linux. Professional
-11%
Базы данных
-19%
Administrator Linux.Basic
-18%
Супер-интенсив «СУБД в высоконагруженных системах»
-18%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-6%
Сетевой инженер AWS для разработчиков Software Architect Reverse-Engineering. Professional CI/CD VOIP инженер Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Python: двумерные и многомерные массивы

Иногда для правильного представления набора данных простого одномерного массива недостаточно. В таких случаях используют двумерные и многомерные массивы. Однако в Python 3 таких массивов, по сути, не существует. Но это не проблема, так как базовые возможности платформы позволяют легко создавать двумерные списки.

Двумерный массив в Python

Давайте посмотрим на элементы подобной конструкции массива. Обратите внимание, что они располагаются в столбцах и строках, которые заполняются следующим образом:

a1 = []
for j in range(5):
    a2 = []
    for i in range(5):
        a2.append(0)
    a1.append(a2)

Мы можем увидеть, что главная идея реализации двумерного набора данных — создание нескольких списков a2 внутри одного большого списка a1. Далее, посредством 2-х циклов for осуществляется автозаполнение нулями матрицы, имеющей размерность 5×5. И эту задачу успешно решают методы append и range — первый добавляет в список новый элемент (0), второй устанавливает его величину (5).

Следует сказать, что для каждого нового for-цикла применяется своя временная переменная, которая выполняет представление текущего элемента внутренних (i) или внешнего (j) списков. Чтобы обратиться к требуемой ячейке многомерного списка, надо указать её координаты в квадратных скобках, ориентируясь при этом на строки и столбцы: a1[1][2].

Многомерный массив в Python

В предыдущем случае мы говорили о двумерном массиве, который представлен в виде сложного списка. Собственно говоря, в случае с многомерным массивом суть не изменилась, поэтому его можно реализовать по аналогичному принципу «списки внутри списка». В следующем примере мы создадим трехмерный массив, заполняемый нулевыми элементами посредством 3-х циклов for. В результате программа сформирует матрицу размерностью 5×5×5.

a1 = []
for k in range(5):
    a2 = []
    for j in range(5):
        a3 = []
        for i in range(5):
            a3.append(0)
        a2.append(a3)
    a1.append(a3)

Как и в случае с 2-мерным массивом в Python, мы можем обращаться к требуемой ячейке многомерного массива, используя индексы в квадратных скобках: a1[4][2][3].

Выводы

Итак, для взаимодействия с данными и наборами данных одного типа в Python часто применяют массивы. Стандартная библиотека платформы даёт возможность успешно работать с такой структурой. При этом поддерживается многомерное представление списков, а ограничения на количество уровней так называемого массива отсутствует.

Источники: — «Многомерные массивы в Python»; — «Python-массивы».

Python_970x90-20219-8b1a8e.png

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться