Здесь описана сложность исполнения основных операций над словарями.
В таблице ниже приводится усреднённая сложность. Амортизированный худший случай обычно описывается O(n). Для усреднённой сложности предполагается, что хеш-функция для словарей в состоянии сделать конфликты редкими. Также предполагается, что ключи, используемые в параметрах, выбираются равномерно из множества всех существующих ключей.

На заметку
Далее n — количество элементов в контейнере; k — значение параметра, либо количество элементов в параметре.

Указанная ниже сложность справледлива и для defaultdict (вместе с доступными операциями они наследуют от словарей и их сложности). Предполагается, что конструирование нового defaultdict имеет сложность O(1) (что справледливо для часто используемых int(), list(), set()).

Обращение по индексуO(1)d[k]
ПрисвоениеO(1)d[k] = v
lenO(1)len(d)
delO(1)del d[k]
.setdefaultO(1)d.setdefault(1)
.popO(1)d.pop(k)
.popitemO(1)d.popitem()
.clearO(1)d.clear()То же: d = {} и d = dict().
ПредставлениеO(1)d.keys()
СозданиеO(k)dict(obj)Зависит от числа кортежей (ключ, значение).
ПроходO(n)for k in d:То же для keys(), values(), items().
.copyO(n)d1 = d.copy()

На заметку
Для словарей, где ключи являются строками, используется быстрый путь. Это не оказывает влияния на алгоритмическую сложность, однако сильно влияет на постоянные факторы — то, на сколько быстро исполяется типовое приложение.
Синонимы поиска: Сложность операций со словарями
На заметку
Зарегистрированные пользователи могут публиковать свои Статьи.