Различия между версиями 5 и 6
Версия 5 от 2017-11-04 21:11:17
Размер: 3330
Редактор: FrBrGeorge
Комментарий:
Версия 6 от 2017-11-05 01:36:00
Размер: 3387
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 48: Строка 48:
 * <<EJCMC(86, ThreeSquares, Три квадрата)>>

Хеширование, множества и словари

Разбор Д/З

Повторение: строки

  • как последовательности (+особенности)
  • строковые методы
  • байтовые строки и кодировки

Хеширование

  • Определение: (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)