如何在Python中对这个列表进行排序?

5

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

可以按照“time”元素进行降序排序的方法如下:

1个回答

27

像这样:

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

或者:

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

输出:

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

如果您不想保留原始顺序,可以使用 your_list.sort 来修改原始列表,而不是像 sorted(your_list) 那样创建一个副本。

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

1
推荐使用 operator.itemgetter 版本。它对于每个元素少调用了一个函数。 - nosklo
2
@nosklo,itemgetter实际上返回一个函数,它的工作方式与lambda a: a['time']几乎相同,因此从这个角度来看,它们之间没有太大的区别。两种方法都涉及每个元素的函数调用。 - Nadia Alramli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接