41 votes

Trier une liste d'objets Python par date

J'ai une liste Python appelée résultats. Chaque résultat dans la liste de résultats a un objet personne, et chaque objet personne a une date de naissance (result.person.birthdate). La date de naissance est un objet datetime.

Je voudrais classer la liste par date de naissance, en commençant par la plus ancienne. Quelle est la manière la plus pythique de le faire ?

69voto

Amber Points 159296
results.sort(key=lambda r: r.person.birthdate)

14voto

yentsun Points 836

Totalement d'accord avec Amber, mais il existe une autre façon de trier par attribut (à partir du wiki : https://wiki.python.org/moin/HowTo/Sorting ):

from operator import attrgetter
sorted_list = sorted(results, key=attrgetter('person.birthdate'))

Cette méthode peut en fait être encore plus rapide que le tri avec lambda

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X