objectif
Éviter les lambdas pour appeler la même méthode sur tous les éléments.
code minimal
from operator import methodcaller
xs = ["a", "bb", "ccc"]
lens = list(map(methodcaller("__len__"), xs))
print(lens == [1,2,3]) # attendu: True
utilisation
from operator import methodcaller
words = ["a", "B", "c"]
lowered = list(map(methodcaller("lower"), words))
print(lowered == ["a","b","c"])
variante(s) utile(s)
from operator import methodcaller
strip = methodcaller("strip")
print(strip(" x ") == "x")
notes
- methodcaller évite les lambdas verbeuses et améliore la lisibilité.
- Combinez avec map, sorted(key=…), etc.