Шаг 99.
Python: тонкости программирования.
Общие структуры данных Python. Массивоподобные структуры данных (общие сведения)

    На этом шаге мы приведем краткое введение в изучаемую тему.

    Массив (array) - это фундаментальная структура данных, имеющаяся в большинстве языков программирования, и он имеет широкий спектр применений в самых разных алгоритмах.

    Начиная с этого шага мы рассмотрим реализации массива в Python, в которых используются только базовые функциональные средства языка или функциональность, которая включена в стандартную библиотеку Python.

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

    Как работают массивы и для чего они применяются?

    Массивы состоят из записей данных, при этом записи имеют фиксированный размер, что позволяет эффективно размещать каждый элемент на основе его индекса.

    Поскольку массивы хранят информацию в смежных блоках памяти, их рассматривают как непрерывные (нефрагментированные) структуры данных (в противоположность связным структурам данных, таким как связные списки, например).

    Аналогией из реального мира, соответствующей этой структуре данных, является автостоянка:

Автостоянку можно рассматривать как единое целое и как отдельный объект, но 
внутри автостоянки есть места для парковки, индексируемые по уникальному числу. 
Места для парковки являются контейнерами для транспортных средств - каждое место 
для парковки может либо быть пустым, либо содержать автомобиль, мотоцикл или 
другое транспортное средство, припаркованное там.
Но не все автостоянки одинаковые:
Некоторые автостоянки могут быть ограничены только одним типом транспортного средства. 
Например, на кемпинговой автостоянке не разрешено парковать велосипеды . "Ограниченная" 
автостоянка соответствует структуре данных для "типизированного массива", которая допускает 
только те элементы, которые имеют одинаковый тип хранящихся в них данных.

    С точки зрения производительности поиск элемента, содержащегося в массиве, выполняется очень быстро при условии, что указан индекс элемента. Для данного случая надлежащая реализация массива гарантирует постоянное O(1) время доступа.

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

    На следующем шаге мы поговорим о списках.




Предыдущий шаг Содержание Следующий шаг