Структуры данных — это просто специализированные форматы для организации и хранения данных. Они крайне необходимы для разработки программного обеспечения, поэтому их правильный выбор очень важен.
“Плохие программисты беспокоятся о коде. Хорошие программисты беспокоятся о структурах данных и отношениях между ними”, — Линус Торвальдс, создатель Linux.
Одна из важнейших характеристик в выборе правильной структуры — ее нотация О большое.
Что такое нотация О большое? Это язык описания производительности алгоритма и его масштабирования (не важно, насколько он быстрый).
Существует множество статей о структурах данных. В этой я сконцентрируюсь на реализации на Python, потому что:
List
— это упорядоченный изменяемый набор элементов.
List
Set
— это неупорядоченный набор уникальных хэшируемых объектов.
Set
Dict
отображает хэшируемые значения в произвольные изменяемые объекты.
Dict
Defaultdict
— это словарь, который запускается со значением по умолчанию, когда каждый ключ встречается впервые.
Default dict
Deque
— это двусторонняя очередь.
Deque
Heapq
— это двоичное дерево поиска, для которого каждый родительский узел имеет значение меньшее или равное любому из потомков.
Heapq
Counter
— это подкласс dict
для подсчета хэшируемых объектов. Это неупорядоченный набор, в котором элементы хранятся как ключи словаря и их значения как значения словаря.
Перевод статьи Eyal Trabelsi: A Comprehensive Guide to Python’s Built-In Data Structures
Комментарии