首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何基于对象的属性对对象列表进行排序?

如何基于对象的属性对对象列表进行排序?

提问于 2017-12-19 03:41:31
回答 2关注 0查看 285

我有一个Python对象列表,我想按照对象本身的属性进行排序。该列表看起来像:

代码语言:txt
复制
代码语言:txt
AI代码解释
复制
>>> ut
代码语言:txt
AI代码解释
复制
[<Tag: 128>, <Tag: 2008>, <Tag: <>, <Tag: actionscript>, <Tag: addresses>,
代码语言:txt
AI代码解释
复制
 <Tag: aes>, <Tag: ajax> ...]

代码语言:txt
AI代码解释
复制
每个对象都有一个计数:
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
>>> ut[1].count
代码语言:txt
AI代码解释
复制
1L

我需要按照降序的数量对列表进行排序。

我已经看到了几种方法,但我正在寻找Python的最佳做法。

回答 2

心愿

发布于 2017-12-19 04:04:06

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

代码语言:txt
AI代码解释
复制
try: import operato
代码语言:txt
AI代码解释
复制
except ImportError: cmpfun= lambda x: x.count # use a lambda if no operator module
代码语言:txt
AI代码解释
复制
else: cmpfun= operator.attrgetter("count") # use operator since it's faster than lambda
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
ut.sort(key=cmpfun, reverse=True) # sort in-place

嗨喽你好

发布于 2017-12-19 04:03:53

代码语言:txt
AI代码解释
复制
# To sort the list in place...
代码语言:txt
AI代码解释
复制
ut.sort(key=lambda x: x.count, reverse=True)
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
# To return a new list, use the sorted() built-in function...
代码语言:txt
AI代码解释
复制
newlist = sorted(ut, key=lambda x: x.count, reverse=True)
和开发者交流更多问题细节吧,去 写回答
相关文章
基于业务对象(列表)的排序
在上一篇文章 基于业务对象的筛选 中,我们讨论了如何实现Predicate<T>(T object)委托,自定义DateFilter 类来对业务对象进行筛选。与筛选一样,排序也是常见且重要的操作。在对业务对象进行排序时,不能使用ObjectDataSource作为数据源,因为它只对 DataView、DataTable 和 DataSet 支持自动排序。但你仍可以对GridView编写Sorting事件的处理方法,通过拼装SQL语句,使用“Order By”子句来完成排序。
张子阳
2018/09/30
2K0
对list中的对象属性排序
而Arrays.sort使用的是冒泡和归并排序,默认是归并排序,所以排序速度还是很快的.
IT小马哥
2020/03/18
2.4K0
List列表按照对象进行排序
本文介绍了如何根据传入的排序字段,对List列表中的对象进行排序。首先介绍了排序字段及排序规则,然后通过一个实例展示了如何使用该方法,最后给出了通用的排序工具方法。
程序新视界
2018/01/08
1.4K0
对list中对象按某属性排序
实际上只要一句话children.sort(Comparator.comparing(SDict::getOrderNum));
2021/03/11
4K0
对list中对象按某属性排序
20 - 如果列表元素是对象,该如何进行排序
1. 如果列表元素是对象,对这样的列表排序有哪些方法 ? class MyClass: def __init__(self): self.value = 0 ''' def __gt__(self, other): return self.value > other.value ''' def __lt__(self, other): return self.value > other.v
ruochen
2021/05/23
1.1K0
20 - 如果列表元素是对象,该如何进行排序
【JavaScript】js对象进行排序(对象转数组,对象转对象)
【JavaScript】js对象进行排序(对象转数组,对象转对象)1. 问题描述需求是要排序一个对象aaa = { "2\_4":{"a":1,"b":2}, "2\_16":{"a":1,"b":2}, "2\_12":{"a":1,"b":2}, "2\_8":{"a":1,"b":2}}2. 最佳答案(详细解答可以往下看)let aaa = {"2\_4":{"a":2,"b":4},"2\_16":{"a":2,"b":16},"2\_12":{"a":2,"b":12},"
读懂原理
2022/07/05
6.7K0
【JavaScript】js对象进行排序(对象转数组,对象转对象)
基于业务对象(列表)的筛选
可能大家对SQL语句太过熟悉了,也可能虽然已经从Asp过度到了Asp.Net时代,但是Asp的观念没有发生太大变化。结果就是我们将应用程序大部分的逻辑都交给了数据库去完成,忘记了.Net Framework提供给我们灵活强大的数据操控能力。比如说,当我们需要对数据进行筛选的时候,我们想到的是“Where”子句,而不是List<T>.FindAll();当我们需要对数据进行排序的时候,我们想到的是“Order By”子句,而不是List<T>.Sort();当我们需要对数据进行分页的时候我们想到的是存储过程,而不是List<T>.GetRange()。
张子阳
2018/09/30
1.9K0
基于业务对象(列表)的筛选
使用Comparable和Comparator对Java集合对象进行排序
在现实生活中,我们可能会遇到需要对集合内的对象进行排序的场景,比如,有一个游戏得分排行榜,如先按照分数的高低由高到低排序,在分数相同的情况下,按照记录创建的时间由早到新的顺序排序。
孟君
2019/09/09
5.5K0
如何删除对象的某个属性(对象属性方法是什么)
const object = { ‘a’: 1, ‘b’: ‘2’, ‘c’: 3 };
全栈程序员站长
2022/07/29
4.6K0
JS对象属性排序小技巧
前面我们讲到数组对象去重的时候,如果由于对象里面的内容是一样,但是属性位置不一样,从而导致我们可能出现无法去重,虽然JSON.stringify()的第二个参数能够自行添加属性到数组里面,但有可能出现我们并不知道对象具体有哪些属性。
前端开发博客
2020/11/04
3.4K0
Java 对象数组按某个属性排序
新建一个Student对象 public class Student { private String name; private double score; public Student(String name,double score) { super(); this.name = name; this.score = score; } public String getName() { re
赵哥窟
2021/12/16
2.9K0
如何对列表进行搜索
logic [31:0] ram_block[1024] = '{default:0}
Lauren的FPGA
2019/10/30
2.8K0
python 如何增加列表对象
Updated List : 123, 'xyz', 'zara', 'abc', 2009
用户8418197
2022/01/21
1.4K0
JavaScript之面向对象的概念,对象属性和对象属性的特性简介
  一、大家都知道,面向对象语言有一个标志,那就是他们都有类的概念,通过类我们可以创建任意多个具有相同属性和方法的对象。但ECMAScript(指定JavaScript标准的机构,也就是说JavaScript是实现其标准的扩展)并没有类的概念,因此他的对象和基于类的语言中的对象有所不同,ECMAScript把对象定义为:"无需属性的集合,其属性可以包含基本值、对象或者函数"。严格的来说,这就相当于说对象是一组没有特定顺序的值。对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。正应为这样,我们可以把
郑小超.
2018/01/24
2.4K0
JavaScript——对象的属性
在JavaScript中,所有的对象都是一组属性的集合,属性可以是数值,字符串等原始类型,也可以是函数,或者是其他对象。
Html5知典
2019/11/26
2.5K0
如何遍历JavaScript中对象属性
在2016年6月发布的ECMAScript 2016的同一时期,令JavaScript开发人员开心的是知道另一组很棒的提案已经达到了第4阶段(完成)。
疯狂的技术宅
2019/03/27
3.6K0
如何遍历JavaScript中对象属性
对象属性的遍历
爱学习的前端歌谣
2023/10/24
1850
对象属性的遍历
22 - lambda表达式对列表进行排序
如果列表元素是字典类型,如何利用lambda表达式对列表进行升序降序排序? # lambda 表达式只有一行代码,并返回该行代码的结果 a = [ {'name': 'Bill', 'age': '40'}, {'name': 'Mike', 'age': '18'}, {'name': 'Johb', 'age': '28'} ] print(a) print(sorted(a, key=lambda x: x['age'])) a.sort(key=lambda x: x[
ruochen
2021/05/23
1.6K0
22 - lambda表达式对列表进行排序
点击加载更多

相似问题

如何通过属性值对JavaScript对象进行排序?

2245

如何对Python中列表切片中的属性进行变量设置?

0207

Java 8-根据在数组中定义的顺序按属性对对象集合进行排序?

0140

如何打乱对象列表?

2342

如何列出JavaScript对象的属性?

2334
相关问答用户
腾讯云TDP | TDP会员擅长3个领域
到家集团 | 技术VP擅长5个领域
腾讯云TDP | KOL擅长5个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文