Trier la liste des objets Python par date

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

je voudrais commander la liste par date de naissance avec la plus ancienne d'abord. Quelle est la façon la plus pythonique de faire cela?

24
demandé sur shane 2011-02-20 10:26:42

2 réponses

results.sort(key=lambda r: r.person.birthdate)
49
répondu Amber 2011-02-20 07:28:26

tout à fait d'accord avec l'Ambre, mais il est 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

11
répondu yentsun 2014-10-21 05:29:39