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

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

К примеру, есть словарь, в котором используются статусы функций во время исполнения программы, потенциально их может стать большое количество. Когда словарь почти пустой, то команда типа status.get(pid) выполняется мгновенно, но если объектов в словаре будет 100/1000/10000/... с какой скоростью будет осуществляться доступ и вообще будет-ли происходить замедление?
  • Вопрос задан
  • 216 просмотров
Подписаться 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
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
SpectrumData Екатеринбург
от 200 000 до 300 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
18 янв. 2025, в 00:01
500 руб./за проект
17 янв. 2025, в 23:56
10000 руб./за проект