Ich schaue auf einige Code, der viele Sortieraufrufe mit Vergleichsfunktionen hat, und es scheint, wie es Schlüsselfunktionen verwenden sollte.Lambda vs Operator.Trgetter ('xxx') als Sortierschlüssel Funktion in Python
Wenn Sie waren seq.sort(lambda x,y: cmp(x.xxx, y.xxx))
zu ändern, was vorzuziehen ist:
seq.sort(key=operator.attrgetter('xxx'))
oder:
seq.sort(key=lambda a:a.xxx)
ich auch in den Kommentaren über die Vorteile der Änderungen an vorhandenen Code interessiert sein würde, das funktioniert.
ich stimme mit Alexanders Antwort überein (das ist er ist kein Lambda-Liebhaber) :-) aber auch Sekunde die Vorstellung des Lambda. Im obigen Beispiel ist es vielleicht ein kleines bisschen schneller, weil Sie weder 'operator' noch' operator.attrgetter() 'suchen müssen ... Sie haben das eigentliche Funktionsobjekt bereits! es ist jedoch kaum wahrnehmbar, wie alex schon gesagt hat, aber die "lambda" -Lösung gewinnt Python-Zen-Punkte, da sie einfacher zu lesen ist. – wescpy
Danke, Alex und Wesley! – PaulMcG