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

5 投票
1 回答
733 浏览
提问于 2025-04-15 14:58

这是一个包含多个对象的列表,每个对象都有一个“time”属性,比如说时间。现在我们想要按照这个“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)

撰写回答