2009-10-10 5 views

Répondre

27

Comme ceci:

from operator import itemgetter 
l = sorted(l, key=itemgetter('time'), reverse=True) 

Ou:

l = sorted(l, key=lambda a: a['time'], reverse=True) 

sortie:

[{'time': 66}, {'time': 33}, {'time': 11}] 

Si vous ne souhaitez pas conserver l'ordre d'origine, vous pouvez utiliser your_list.sort qui modifie la liste originale au lieu de créer une copie comme sorted(your_list)

l.sort(key=lambda a: a['time'], reverse=True) 
+1

la version operator.itemgetter est préférée. Il a un appel de fonction de moins pour chaque élément. – nosklo

+2

@nosklo, itemgetter renvoie en fait une fonction qui fonctionne presque comme lambda a: a ['time'] donc il n'y a pas vraiment de différence par rapport à cette perspective. Les deux méthodes impliquent un appel de fonction pour chaque élément. –