2009-10-10 15 views

Odpowiedz

27

Jak to:

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

czyli

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

wyjściowa:

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

Jeśli nie chcesz zachować oryginalną kolejność można użyć your_list.sort który modyfikuje oryginalna lista zamiast tworzenia kopii, takiej jak sorted(your_list)

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

Preferowana jest wersja operatora.itemgetter. Ma jedno wywołanie mniej funkcji dla każdego elementu. – nosklo

+2

@nosklo, itemgetter w rzeczywistości zwraca funkcję, która działa prawie tak samo jak lambda a: a ['time'], więc nie ma dużej różnicy w stosunku do tej perspektywy. Obie metody obejmują wywołanie funkcji dla każdego elementu. –

Powiązane problemy