1

我有一个(小)对象列表,我想按属性降序排序。

如:

obj1.age = 1
obj2.age = 2
obj3.age = 3

list = [obj3,obj2,obj1]
4

2 回答 2

8

使用operator.attrgetter.sort

from operator import attrgetter
your_list.sort(key=attrgetter('age'), reverse=True)
于 2013-10-21T14:32:33.697 回答
5

由于您的列表很小,因此无需导入operator.attrgetter. 使用函数也sorted可以lambda运行:

sorted(lst, key=lambda x: x.age, reverse=True)

在上面的代码中,lst是列表。我更改了名称,因为命名变量是不好的做法,list因为这样做会掩盖内置。

此外,此解决方案不是就地解决方案。意思是,您可以将其分配给变量:

new_lst = sorted(lst, key=lambda x: x.age, reverse=True)
于 2013-10-21T14:33:00.020 回答