Как работают словари в Python | Хэш-таблицы [Any]
HTML-код
- Опубликовано: 26 июн 2024
- 👉 Telegram: t.me/pavlin_share
gist - gist.github.com/Afaneor/ac293...
🎥 Чтобы не пропустить ничего важного и всегда быть в курсе, подписывайтесь на мой канал и активируйте уведомления! 🔔
В этом видео мы глубоко погружаемся в одну из ключевых структур данных в Python - хэш-таблицы, на примере реализации словарей (dict). Вы узнаете, как устроены словари в Python, как функционирует хэш-функция, как Python обрабатывает коллизии хэшей и управляет памятью. Мы рассмотрим исходный код CPython, чтобы показать, как на самом деле работают эти механизмы. Это видео будет полезно как начинающим, так и опытным разработчикам, стремящимся улучшить свои навыки в оптимизации и понимании внутренней работы Python.
0:00 Что будем изучать?
1:15 Что такое хэш-таблица?
2:20 Абстрактный пример
5:10 Знакомство с коллизией
5:50 Пишем на питоне реализацию
17:00 Запускаем наш пример
18:00 Воспроизводим коллизию
20:40 Бенчмарк Наука
Спасибо за ваш труд!
Добавить хочу от себя
1) Лучше бы в __init__ давать возможность пользователю сразу добавлять пары коюч-значение
2) Сделать приватными атрибуты map и size - не хочется пользователю давать к ним прямой доступ (через property или __getattribute__)
3) Неплохо было бы добавить методы keys, values, items
А так все на высшем уровне!!❤
Душно конечно, но информация полезная!)
Спасибо вам🎉
Кстати, в методе _resize у old_map в цикле нет смысла проверять на "is None", потому что этот метод вызывается только в том случае, когда у old_map уже некуда вставить значения))
Привет
Спасибо за обьяснение пробинга
Метод удаления почему там сравнивается 0 элемент с ключем?
Косяк, я в конце добавил сохранение еще и хэша (индекса элемента), и вот где-то мог забыть скорректировать, а тестов не написал на все методы
Сравнивать надо ключи, корректное замечание
А если такая ситуация с коллизиями все таки происходит, например на очень больших данных, то как тогда работают с такими данными?
Честно скажу, я с такой проблемой не сталкивался на практике, поэтому не могу придумать пример сходу, в целом надо от задачи идти, может быть тебе не нужен словарь в таком случае
Подключить русский орфограф.словарь религия не позволяет?
Ограничений таких не знаю не в одной религии
По умолчанию не включен, надо будет озадачиться