O módulo operator transforma operações comuns em funções. itemgetter acessa posições ou chaves; attrgetter percorre atributos, inclusive caminhos como cliente.nome. Eles são úteis em sorted, min, max, map e agrupamentos.

from operator import attrgetter, itemgetter

rows = [("Ana", 91), ("Beto", 84), ("Caio", 96)]
ranking = sorted(rows, key=itemgetter(1), reverse=True)

class User:
    def __init__(self, name: str) -> None:
        self.name = name

names = list(map(attrgetter("name"), [User("Ana"), User("Beto")]))

Como usar com segurança

Escolha itemgetter para sequências e mappings, e attrgetter para objetos. Uma lambda continua melhor quando a regra inclui transformação, valor padrão ou validação. Não esconda acessos que podem falhar: documente as chaves e atributos exigidos.

Para aprofundar a base, consulte guia de collections em Python e guia de type hints.

A documentação oficial do Python, consultada em 22 de julho de 2026, descreve a API, os casos-limite e a compatibilidade entre versões.