2009-10-10 42 views

Trả lời

27

Như thế này:

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

Hoặc:

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

đầu ra:

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

Nếu bạn không muốn giữ lại thứ tự ban đầu bạn có thể sử dụng your_list.sort làm biến đổi các danh sách gốc thay vì tạo bản sao như sorted(your_list)

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

phiên bản operator.itemgetter được ưu tiên. Nó có một cuộc gọi ít chức năng hơn cho mỗi phần tử. – nosklo

+2

@nosklo, itemgetter thực sự trả về một hàm hoạt động gần giống như lambda a: a ['time'] nên không có nhiều sự khác biệt so với triển vọng này. Cả hai phương thức đều liên quan đến một cuộc gọi hàm cho mỗi phần tử. –

Các vấn đề liên quan