Python Glossary English

все Python 3operatorфункция

operator.itemgetter

вызов и доступ

Фабрика: возвращает функцию, извлекающую элемент(ы) по фиксированному индексу/ключу — удобно для key= в sorted/map.

Синтаксис

f = operator.itemgetter(index)

Число ключей меняет форму результата: itemgetter(1) вернёт сам элемент, а itemgetter(1, 2) — кортеж. Это ловушка при генерации кода, где ключей может оказаться один. Работает и со словарями, и со срезами: itemgetter(slice(0, 2)). Быстрее лямбды и, в отличие от неё, сериализуется pickle; поэтому её предпочитают в key= у sorted, min и max.

Примеры

import operator
g = operator.itemgetter(1)
print(g([10, 20, 30]))   # → 20
print(operator.itemgetter(1)([10, 20, 30]) == [10, 20, 30][1])   # → True
print(operator.itemgetter(0, 2)('abcd'))   # → ('a', 'c')
print(operator.itemgetter('b')({'a': 1, 'b': 2}))   # → 2
pairs = [('a', 3), ('b', 1)]
print(sorted(pairs, key=operator.itemgetter(1)))   # → [('b', 1), ('a', 3)]

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности