Объекты типа mapping

Объект мапирования преобразует неизменные значения в произвольные объекты. Объекты типа mapping – изменяемые объекты. В настоящее время в Python существует только один стандартный тип мапирования – словарь.

Ключи словаря – почти произвольные значения. Только значения, содержащие списки, словари или другие изменяемые типы (которые сравниваются по значению, а не по идентичности объекта), не могут использоваться в качестве ключей. Числовые типы, используемые для ключей, подчиняются обычным правилам для числового сравнения: если два числа равны (например, 1 и 1.0), то они могут использоваться взаимозаменяемо для индексирования одной и той же записи словаря.

Словари создаются путем размещения разделенных запятыми списков ключей, например:

{'jack': 4098, 'sjoerd': 4127} or {4098: 'jack', 4127: 'sjoerd'}

Операции c mapping объектами:

Следующие операции определены для мапирований (где a и b – мапирования, k – ключ, а v и x – произвольные объекты):

Примечания

  • Вызывает исключение KeyError, если k не находится на карте.
  • В версии 2.2 по-другому.
  • Ключи и значения перечислены в произвольном порядке, который не является случайным, изменяется в разных реализациях Python и зависит от истории вставки и удаления словаря. Если вызывается items (), keys (), values ​​(), iteritems (), iterkeys () и itervalues ​​() без каких-либо промежуточных изменений в словаре, списки будут напрямую соответствовать. Это позволяет создавать пары (value, key), используя zip (): «pairs = zip (a.values ​​(), a.keys ())». То же самое выполняется для методов iterkeys () и itervalues ​​(): «pairs = zip (a.itervalues ​​(), aiterter ())» обеспечивая одинаковое значение для пар. Другим способом создания такого же списка является «pairs = [(v, k) для (k, v) в a.iteritems ()]».
  • Никогда не вызывает исключение, если k не находится в карте, вместо этого он возвращает x. x является необязательным. Когда x не указывается и k не находится в карте, возвращается None.
  • setdefault () подобен get (), за исключением того, что если k отсутствует, x возвращается и вставляется в словарь как значение k. x по умолчанию равно None.
  • popitem () полезен для деструктивной итерации по словарю, как часто используется в алгоритмах набора. Если словарь пуст, вызов popitem () ведет за собой KeyError.
  • fromkeys () – метод класса, который возвращает новый словарь. Значение по умолчанию равно None. В версии 2.3 по новому.
  • pop () вызывает KeyError, когда значение по умолчанию не задано, а ключ не найден. Новое в версии 2.3.
  • update () принимает либо другой объект отображения, либо итерируемый пары ключа / значения. Если заданы аргументы ключевого слова, отображение затем обновляется с помощью этих пар ключа / значения: «d.update (red = 1, blue = 2)». Изменено в версии 2.4: допустимо, чтобы аргумент был итерируемым пар ключа / значения и допустимыми аргументами ключевого слова.

Все статьи по теме:

Поделитесь с друзьями:

Оставьте комментарий