На этом шаге мы подведем некоторые итоги.
В том, что касается реализации массивов в Python, вы можете выбирать из широкого круга встроенных структур данных. В предыдущих шагах мы сосредоточились на ключевых функциональных средствах языка и структурах данных, включенных только в стандартную библиотеку.
Если вы готовы выйти за пределы стандартной библиотеки Python, то сторонние пакеты, такие как NumPy, предлагают широкий спектр массивоподобных реализаций с большим быстродействием для научных вычислений и науки о данных.
Если ограничиваться массивоподобными структурами данных, включенными в Python, то наш выбор сводится к следующему.
Вам нужно хранить произвольные объекты, которые потенциально могут иметь смешанные типы данных? Используйте список или кортеж в зависимости от того, хотите вы иметь неизменяемую структуру данных или нет.
У вас есть числовые (целочисленные или с плавающей точкой) данные и для вас важны плотная упаковка и производительность? Попробуйте array.array и посмотрите, способен ли этот тип делать все, что вам нужно. Кроме того, рассмотрите выход за пределы стандартной библиотеки и попробуйте такие пакеты, как NumPy или Pandas.
У вас есть текстовые данные, представленные символами Юникода? Используйте встроенный в Python тип str. Если вам нужна "изменяемая последовательность символов", то используйте list как список символов.
Вы хотите хранить нефрагментированный блок байтов? Используйте неизменяемый тип bytes, либо bytearray, если вам нужна изменяемая структура данных.
В большинстве случаев можете начинать с простого списка list. И только потом, когда требуется конкретизировать используемый тип, когда производительность или занимаемое пространство оперативной памяти становятся проблемой. В большинстве случаев использование массивоподобной структуры данных общего назначения, такой как список list, обеспечивает наибольшую скорость разработки и удобство во время программирования.
Со следующего шага мы начнем рассматривать записи и структуры.