我有一个(小)对象列表,我想按属性排序,降序.
如:
obj1.age = 1
obj2.age = 2
obj3.age = 3
list = [obj3,obj2,obj1]
Run Code Online (Sandbox Code Playgroud)
使用operator.attrgetter和.sort:
from operator import attrgetter
your_list.sort(key=attrgetter('age'), reverse=True)
Run Code Online (Sandbox Code Playgroud)
由于您的列表很小,因此无需导入operator.attrgetter.使用sorted与lambda功能将运行一样好:
sorted(lst, key=lambda x: x.age, reverse=True)
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,lst是列表.我更改了名称,因为命名变量是不好的做法,list因为这样做会掩盖内置内容.
此外,该解决方案不是就地解决方案.意思是,您可以将其分配给变量:
new_lst = sorted(lst, key=lambda x: x.age, reverse=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
145 次 |
| 最近记录: |