⭐️Список и кортеж
Немного копнем поглубже словари и сеты -как работают под капотом, почему такие быстрые при поиске, какие могут быть грабли и каверзные вопросы на собеседовании.
1) dict - словарь, отображение, хеш-мап, ассоциативный массив, коллекция пар ключ-значение, где ключом может быть только hashable тип, доступ по ключу и проверка наличия ключа O(1), с питона 3.7 хранит порядок вставки
2) пустой словарь создавать лучше через {},а не dict(), под капотом сразу будет создано 8 элементов
3) set - множество, хешсет, неупорядоченный набор hashable объектов, доступ и проверка наличия O(1)
4) frozenset - неизменяемый брат множества
5) Hashable != Immutable, эти понятия часто путают, помните что это не одно и то же.
6) алгоритм работы словаря и сета: Получаем хеш -} высчитываем позицию в массиве -} если элемента нет то действуем соответственно задаче -} если элемент есть то сравниваем ключ == тому что ищем -} если ключ не равен искомому то ищем дополнительный бакет
7) По умолчанию самописные классы возвращают хеш основанный на id, если переопределяете хеш, то всегда проверяйте, что у равных объектов одинаковый хеш
8) Проверка на содержание тоже вызывает ошибку, если элемент не хешируем. Тапл можно положить в сет только если все его элементы хешируемы, frozenset без проблем кладется в сет. Словари и сеты нельзя положить в словари(как ключ) и сеты.
9) За скорость словаря и сета мы платим большей памятью и тем, что положить туда можно не любые элементы
Читать:
“High Performance Python“ by Micha Gorelick and Ian Ozsvald
“Fluent Python“ by Luciano Ramalho
#term-hashable
#term-immutable
Присоединяйтесь к помощи каналу, будет интересно)
✔️Бусти
Будь первым везде и всегда, включай уведомления о новых выпусках 🔔
#Python #PythonRussian #PyCharm
11 views
3188
1170
4 weeks ago 00:01:21 98
Энциклопедия Вязания
4 weeks ago 00:05:12 1
Последняя Поэма. Четвертое видео проекта #еще10песенатомныхгородов. #Музыкавместе.
4 weeks ago 01:29:59 4
Phd Рубский - Манипуляции как часть коммуникации
4 weeks ago 00:02:56 1
1 девушка и КАТЮША на 40 языках - Алиса Супронова
4 weeks ago 00:32:54 1
Следки на двух спицах без шва для начинающих.
4 weeks ago 00:00:11 1.9K
Энциклопедия Цветовода
4 weeks ago 00:12:12 1
ЗАСТАВИТЬ США и Израиль уважать международное право - Небензя в ООН о ситуации в Газе
4 weeks ago 01:04:13 1
Андрей Зализняк. История русского языка
4 weeks ago 00:17:54 1
3 НЛП техники, которые должен знать каждый. Калибровка. Якорение. Субмодальности. Энциклопедия НЛП