El módulo operator expone operaciones comunes como funciones. itemgetter lee índices o claves; attrgetter recorre atributos, incluso rutas como cliente.nombre. Son útiles con sorted, min, max, map y agrupaciones.
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")]))
Cómo usarlo con seguridad
Elige itemgetter para secuencias y mappings, y attrgetter para objetos. Una lambda es más clara cuando la regla transforma, aporta un valor por defecto o valida. No ocultes accesos que pueden fallar: documenta las claves y atributos requeridos.
Para reforzar la base, consulta guía de collections en Python y guía de type hints.
La documentación oficial de Python, consultada el 22 de julio de 2026, describe la API, los casos límite y la compatibilidad entre versiones.