Задать вопрос
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn

Сильно-ли замедляется доступ к объектам словаря при большом количестве?

К примеру, есть словарь, в котором используются статусы функций во время исполнения программы, потенциально их может стать большое количество. Когда словарь почти пустой, то команда типа status.get(pid) выполняется мгновенно, но если объектов в словаре будет 100/1000/10000/... с какой скоростью будет осуществляться доступ и вообще будет-ли происходить замедление?
  • Вопрос задан
  • 215 просмотров
Подписаться 1 Средний 1 комментарий
Решения вопроса 1
@deliro
Если у ключей будет плохая хэш-функция (__hash__) — замедление будет сильное. Например, если все ключи будут отдавать хэш 42. Тогда открытая адресация просто умрёт, пытаясь найти очередную свободную ячейку в хэш-таблице.

В остальном, хоть 100, хоть 10000000 — неважно. Вероятность коллизии примерно одинаковая. И амортизированная сложность вставки/получения/удаления элемента — O(1)
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
alternativshik
@alternativshik
https://wiki.python.org/moin/TimeComplexity
Для dict там внизу данные.
Ответ написан
Комментировать
aRegius
@aRegius
Python Enthusiast
Комментировать
если много дынных то лучше использовать redis
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы