为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据对象的属性对象列表进行排序?

如何根据对象的属性对象列表进行排序?

Smart猫小萌 2019-06-24 10:07:45
如何根据对象的属性对象列表进行排序?我有一个Python对象列表,我想根据对象本身的属性进行排序。清单如下:>>> ut[<Tag: 128>, <Tag: 2008>, <Tag: <>, <Tag: actionscript>, <Tag: addresses>,  <Tag: aes>, <Tag: ajax> ...]每个对象都有一个计数:>>> ut[1].count1L我需要按下降的计数对列表进行排序。我已经看到了几种方法,但我正在寻找Python中的最佳实践。
查看完整描述

3 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

# To sort the list in place...ut.sort(key=lambda x: x.count, reverse=True)# To return a new list, use the sorted() built-in function...
newlist = sorted(ut, key=lambda x: x.count, reverse=True)

更多关于按键排序


查看完整回答
反对 回复 2019-06-24
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

一种最快的方法,特别是当你的列表有很多记录的时候,就是使用operator.attrgetter("count")..但是,这可能在Python的预操作符版本上运行,所以最好有一个备用机制。那么,您可能需要执行以下操作:

try: import operatorexcept ImportError: keyfun= lambda x: x.count # use a lambda if no operator moduleelse:
 keyfun= operator.attrgetter("count") # use operator since it's faster than lambdaut.sort(key=keyfun, reverse=True) # sort in-place


查看完整回答
反对 回复 2019-06-24
  • 3 回答
  • 0 关注
  • 830 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信