Список и кортеж
Немного копнем поглубже словари и сеты -как работают под капотом, почему такие быстрые при поиске, какие могут быть грабли и каверзные вопросы на собеседовании.
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 #Питон #Программирование
1 view
16
4
8 months ago 00:10:27 1
Словари Map | Dart с нуля до профи #7 | Уроки для начинающих 2023
8 months ago 00:04:16 1
Английские Неправильные Глаголы. Часть 2. Irregular Verbs. Part 2.
8 months ago 00:01:58 1
Православный словарь. Мощевик
8 months ago 00:01:59 1
Православный словарь. Левиты
8 months ago 00:02:02 1
Православный словарь. Канонический возраст
8 months ago 00:15:00 1
Что же скрывают архивы Ватикана?
8 months ago 00:26:21 1
Безупречные носки на 5 спицах. Секреты вязания классических носков спицами
8 months ago 00:17:46 1
Рюрик родился в Рязани
8 months ago 01:08:30 1
Украденная история, масоны и величие России. Вячеслав Куланов
8 months ago 00:53:59 1
Доказательства древности России. Официальная фактология и хронология
8 months ago 00:08:18 1
Бездомные кочевники. Синдром потерянного счастья
8 months ago 01:41:35 1
СЕКРЕТЫ КРАСОТЫ, СЧАСТЬЯ И ЗДОРОВЬЯ ОТ СТОПАПТЕКИ! СЕМИНАР ПО ФИЗИОПРАКТИКЕ В КРАСНОДАРЕ - 5
8 months ago 00:15:51 1
Израиль & ХАМАС |3|. Приход Нового мира. Клеймение новых людей. Окончание мировой войны
8 months ago 00:13:19 1
Израиль & ХАМАС |2|. Грядущая волна эвакуации. Место убежища. Новый контроль Нового мира
8 months ago 00:14:10 1
Израиль & ХАМАС |1|. Мировые войны. Очистка территории Украины. Подготовка к переселению?
8 months ago 01:27:12 1
Курс · Алгоритмы и структуры данных # ч.10 # Символьный таблицы / Словари
8 months ago 00:05:21 1
Русский язык 6 класс (Урок№14 - Слово и его лексическое значение.)
8 months ago 00:04:11 1
Русский язык 2 класс (Урок№26 - Работа с электронными словарями синонимов и антонимов.)
8 months ago 00:08:14 1
Глагол TO BE. Формы AM / IS / ARE // КАК СТРОИТЬ АНГЛИЙСКИЕ ПРЕДЛОЖЕНИЯ
8 months ago 00:20:52 1
Уверенность Путина
8 months ago 00:07:12 1
СТРАННЫЕ НЕМЕЦКИЕ СЛОВА
8 months ago 00:17:04 1
Как избежать не решённых проблем
8 months ago 00:04:25 1
Геометрия 8 класс (Урок№7 - Осевая и центральная симметрия.)
8 months ago 01:01:20 1
ЕКБ: от ОПГ до СТРИТ-АРТА. РОЛЬ ЕЛЬЦИНА, УРАЛЬСКИЙ ГОВОР и АНДЕГРАУНД. РЫНДЕВИЧ