Полное руководство по встроенным структурам данных Python


Структуры данных — это просто специализированные форматы для организации и хранения данных. Они крайне необходимы для разработки программного обеспечения, поэтому их правильный выбор очень важен. 

“Плохие программисты беспокоятся о коде. Хорошие программисты беспокоятся о структурах данных и отношениях между ними”,  —  Линус Торвальдс, создатель Linux.

Одна из важнейших характеристик в выборе правильной структуры — ее нотация О большое. 

Что такое нотация О большое? Это язык описания производительности алгоритма и его масштабирования (не важно, насколько он быстрый). 

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

  • Нет единого материала о временной сложности структур данных.
  • У меня несколько разных структур данных. 
  • Временная сложность может преподносить сюрпризы при реализации структуры данных.

Начнем

1. List

 List — это упорядоченный изменяемый набор элементов.

Нотация “большого О” для List

2. Set

 Set — это неупорядоченный набор уникальных хэшируемых объектов.

Нотация “большого О” для Set

3. Dict

Dict отображает хэшируемые значения в произвольные изменяемые объекты. 

Нотация “большого О” для Dict

4. Default dict

Defaultdict — это словарь, который запускается со значением по умолчанию, когда каждый ключ встречается впервые. 

Нотация “большого О” для Default dict

5. Deque

 Deque — это двусторонняя очередь.

Нотация “большого О” для Deque

6. Heapq

Heapq — это двоичное дерево поиска, для которого каждый родительский узел имеет значение меньшее или равное любому из потомков. 

О большое для Heapq

7. Counter

Counter — это подкласс dict для подсчета хэшируемых объектов. Это неупорядоченный набор, в котором элементы хранятся как ключи словаря и их значения как значения словаря. 

О большое для Counter

Перевод статьи Eyal Trabelsi: A Comprehensive Guide to Python’s Built-In Data Structures


Поделиться статьей:


Вернуться к статьям

Комментарии

    Ничего не найдено.