Какова временная сложность добавления и удаления элемента в словарь в Python?

В Python словарь реализован на основе хеш-таблицы, что обеспечивает в среднем временную сложность O(1) для операций добавления и удаления элементов.

Короткий ответ

Что ответить на собеседовании

В Python словарь реализован на основе хеш-таблицы, что обеспечивает в среднем временную сложность O(1) для операций добавления и удаления элементов.

Подробный разбор

Ответ с пояснениями

В Python словарь реализован на основе хеш-таблицы, что обеспечивает в среднем временную сложность O(1) для операций добавления и удаления элементов.

  • Добавление элемента: вычисляется хеш ключа, и элемент вставляется в соответствующую ячейку. В среднем это занимает константное время.
  • Удаление элемента: также происходит по хешу ключа и занимает в среднем O(1).

Однако в худшем случае (например, при большом количестве коллизий) операции могут деградировать до O(n), где n — количество элементов в словаре, но такие случаи крайне редки благодаря хорошей реализации и динамическому расширению словаря.

Пример:

my_dict = {}
my_dict['key'] = 'value'  # добавление — O(1)
del my_dict['key']          # удаление — O(1)

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее