我有一個(小)我想按屬性降序排列的對象列表。按屬性排序對象列表的最有效方法?
如:
obj1.age = 1
obj2.age = 2
obj3.age = 3
list = [obj3,obj2,obj1]
我有一個(小)我想按屬性降序排列的對象列表。按屬性排序對象列表的最有效方法?
如:
obj1.age = 1
obj2.age = 2
obj3.age = 3
list = [obj3,obj2,obj1]
使用operator.attrgetter
和.sort
:
from operator import attrgetter
your_list.sort(key=attrgetter('age'), reverse=True)
只是爲了OP的好處:這是一個** inplace排序**,所以不要指望'your_list = your_list.sort(key = attrgetter('age'),reverse = True)'工作。爲此,請使用iCodez中的'sorted'回答。 –
@BurhanKhalid在效率方面存在差異,如果名單應該變得更大? – BSG
我還會補充一點,'operator.attrgetter'會比iCodez提出的'lambda'更有效率......儘管小列表的效率好處不明顯 –
你有問題嗎? –