Разница между массивами и списками в Python
В этом посте вы узнаете разницу между массивами и списками в Python. Обе эти структуры данных позволяют вам хранить данные в Python и имеют много похожих свойств. Однако они также позволяют вам делать довольно разные вещи, и знание того, когда использовать что, может сделать вас намного сильнее как программиста!
В частности, вы узнаете, чем список в Python отличается от массива и массива NumPy. Вы получите четкое понимание о том, когда использовать ту или иную структуру данных.
К концу этого урока вы научитесь:
Чем списки и массивы Python похожи и чем они отличаются
Когда использовать список Python над массивом
Когда использовать массив вместо списка в Python
Оглавление
Что такое список Python
Список в Python (Python list) является встроенной структурой данных, которая может содержать коллекцию элементов. У них есть ряд уникальных свойств, которые отличают их от других структур данных. В частности, списки в Python являются:
Упорядоченный — означает, что элементы, которые он содержит, расположены в определенном порядке, позволяя вам получать доступ к элементам по их позициям
Изменяемый – означает, что элементы могут быть добавлены или удалены
Дублированный – означает, что элементы могут появляться в списке более одного раза
Гетерогенный – означает, что элементы могут быть различных типов данных, таких как строки, целые числа и даже другие списки
Python списки создаются с использованием квадратных скобок, []
. Давайте создадим список, содержащий несколько чисел:
В следующем разделе вы узнаете о массивах в Python.
Что такое массив Python
Python включает в себя встроенный модуль array
, который можно использовать для создания массивов в Python. Хотя массивы сохраняют большинство характеристик списков Python, они не могут хранить элементы разных типов данных. Однако они могут содержать дубликаты, являются упорядоченными и изменяемыми.
Для создания массива сначала необходимо его объявить. Обычно это делается путем передачи другой структуры коллекции, например, списка. При объявлении массива сначала нужно указать тип данных, а затем элементы, которые мы хотим хранить.
Давайте воссоздадим предыдущий массив:
Что такое массив NumPy
Один из типов массивов, с которым вы, вероятно, будете сталкиваться чаще, по сравнению с массивом из библиотеки array
, - это массив NumPy. Массив NumPy часто используется для численных расчетов. Тем не менее, он гораздо более похож на список Python. Фактически, он обладает всеми свойствами списка Python (включая хранение данных разных типов). Поскольку NumPy предназначен для использования в численных расчетах, он также содержит множество различных методов и функций для поддержки этого.
Давайте посмотрим, как мы можем создать массив NumPy, содержащий те же элементы, что и наш изначальный список:
Подобно массиву из библиотеки array
, нам нужно объявить массив NumPy. Однако, поскольку эти массивы могут содержать данные разных типов, нам не нужно заранее объявлять тип данных.
Сравнение списка Python и массива
В этом разделе мы сравним список в Python, массив и массив NumPy:
гетерогенный
гетерогенный
Однородный
Встроенный
Необходимо установить и импортировать
Необходимо импортировать
Нет необходимости декларировать
Нет необходимости декларировать
Нет необходимости декларировать
Списки могут быть вложены внутри любой длины.
Вложенные массивы должны быть одинаковыми по размеру.
Вложенные массивы должны быть одинаковыми по размеру.
Невозможно применить математические операции непосредственно к нему.
Можно применять математические операции непосредственно к нему.
Можно применять математические операции непосредственно к нему.
Когда использовать список поверх массива в Python
Выбирайте список в Python вместо массива, когда вам нужно хранить небольшой набор элементов, с которыми не предполагается выполнять математические операции. Благодаря простоте создания и изменения, списки в Python отлично подходят для таких задач.
Однако, если вы хотите выполнять математические операции, работа становится немного сложнее. Допустим, мы хотели бы добавить 5 к нашему исходному списку numbers
. Для этого нам потребуется использовать либо цикл for, либо генератор списка, чтобы добавить значение к каждому элементу.
Давайте посмотрим, как это выглядит:
Когда использовать массив вместо списка в Python
Вы должны выбрать массив вместо списка в Python, если знаете, что вам потребуется выполнять математические операции с ним. Аналогично, если вам нужно хранить сложные данные одинаковой структуры (например, матрицы), это может быть более эффективным с точки зрения использования памяти процессом.
Давайте посмотрим, насколько легко можно воспроизвести наш ранний пример, используя массив NumPy:
Заключение
В этом учебном пособии вы узнали различия между списками в Python и двумя типами массивов, доступных в Python: библиотекой array и библиотекой NumPy. Затем вы узнали, чем они похожи и чем отличаются. Наконец, вы узнали, когда использовать каждый из вариантов, с учетом различных сценариев использования.
Дополнительные ресурсы
Чтобы узнать больше о связанных темах, ознакомьтесь с обучающими материалами ниже:
Добавить в список в Python
Python: найти индекс списка всех вхождений элемента
Списки Python: полный обзор
NumPy для науки о данных в Python
Last updated