Различия между версиями 3 и 4
Версия 3 от 2017-11-03 16:30:17
Размер: 2363
Редактор: FrBrGeorge
Комментарий:
Версия 4 от 2017-11-04 17:01:58
Размер: 3148
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 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+) словарей (описано здесь): прямая таблица объектов + хеш-таблица индексов + пометка на удаление вместо удаления + переупаковка

  • (если успеем) вся правда о пространствах имён
  • (если успеем) именные параметры функций

Д/З


TODO

  • разбор задачи

LecturesCMC/PythonIntro2017/07_Dicts (последним исправлял пользователь FrBrGeorge 2017-11-09 23:19:33)