2363
Комментарий:
|
3148
|
Удаления помечены так. | Добавления помечены так. |
Строка 35: | Строка 35: |
* +`frozendict` | * почему нет `frozendict`? |
Строка 40: | Строка 40: |
* Почитать * Про хеширование [[py3doc:functions.html#hash|в документации]], и далее п ссылкам * [[py3ref:datamodel.html#object.__hash__|требуемые свойства]] метода `.__hash__()` * [[py3use:cmdline.html#envvar-PYTHONHASHSEED|отмена рандомизации хеша]] с помощью переменной окружения PYTHONHASHSEED * Про множества [[py3tut:datastructures.html#sets|в учебнике]] и [[py3doc:stdtypes.html#set-types-set-frozenset|в документации]] * Про словари [[py3tut:datastructures.html#dictionaries|в учебнике]] и [[py3doc:stdtypes.html#mapping-types-dict|в документации]] |
Хеширование, множества и словари
Разбор Д/З
Повторение: строки
- как последовательности (+особенности)
- строковые методы
- байтовые строки и кодировки
Хеширование
Определение: (f(x)=y: {y} << {x})
- Возможные свойства и их применение:
- равномерное покрытие ОЗ — хеш-таблицы
- вероятная однозначность на небольшом подмножестве ОО — идентификация
невосстановимость x из y — шифрование
разброс (в т. ч. для почти похожих x) — много где
hash()
- только константные объекты
- Понятие об идеальной хеш-таблице, поиск в ней
- Разрешение коллизий ключей в хеш-таблице: «вёдра» vs повторное хеширование
Множества
- (это хеш-таблиы, как они есть)
- Конструктор (в т. ч. циклический)
- операции и методы
- использование
- …
+frozenset
Словари
Хешируется ключ, а хранится произвольный объект ⇒ ассоциативный массив, хеш ключа в качестве индекса объекта
- Конструктор словаря (+циклический)
- методы
- использование
- …
почему нет frozendict?
Устройство современных (Python3.6+) словарей (описано здесь): прямая таблица объектов + хеш-таблица индексов + пометка на удаление вместо удаления + переупаковка
- (если успеем) вся правда о пространствах имён
- (если успеем) именные параметры функций
Д/З
- Почитать
Про хеширование в документации, и далее п ссылкам
требуемые свойства метода .__hash__()
отмена рандомизации хеша с помощью переменной окружения PYTHONHASHSEED
Про множества в учебнике и в документации
Про словари в учебнике и в документации
TODO
- разбор задачи