Einigen Python-Code, der einen ungültigen Syntaxfehler werfen hält:Was ist los mit diesem Bit von Python-Code mit Lambda?
stat.sort(lambda x1, y1: 1 if x1.created_at < y1.created_at else -1)
Einigen Python-Code, der einen ungültigen Syntaxfehler werfen hält:Was ist los mit diesem Bit von Python-Code mit Lambda?
stat.sort(lambda x1, y1: 1 if x1.created_at < y1.created_at else -1)
Dies ist eine bessere Lösung:
stat.sort(key=lambda x: x.created_at, reverse=True)
Oder, um zu verhindern die Lambda insgesamt:
from operator import attrgetter
stat.sort(key=attrgetter('created_at'), reverse=True)
+1; Ich wollte das gerade tun. – JAB
+1, das ist lesbarer als meine Antwort und scheinbar schneller: http://docs.python.org/library/stdtypes.html#typesseq-mutable. –
Gerade hinzugefügt reverse = True, um die ursprüngliche Anforderung zu erfüllen. –
Versuchen des and-or trick:
lambda x1, y1: x1.created_at < y1.created_at and 1 or -1
Der and-oder Hack ist hässlich und nicht mehr nötig. Bedingte Ausdrücke wurden genau eingeführt, um es zu vermeiden. –
Gehört das fehlende ")" zum Problem oder ist es ein Tippfehler? – Juergen
Können Sie es auf die ursprüngliche falsche Version zurücksetzen? Sonst ist es verwirrend. –
Sie sollten eine der Antworten akzeptieren, die nützlich waren;););) –