首页 > 后端开发 > Python教程 > Python实现对自定义类对象排序(利用attrgetter)

Python实现对自定义类对象排序(利用attrgetter)

不言
发布: 2018-10-20 14:50:03
转载
2456 人浏览过

本篇文章给大家带来的内容是关于Python实现对自定义类对象排序(利用attrgetter),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

1、需求

对自定义的类组成的列表进行排序。

2、解决方案

内建的sorted()函数可接受一个用来传递可调用对象(callable)的参数key,而该可调用对象会返回待排序对象中的某些值,sorted则利用这些值来比较对象。

实例:

from operator import attrgetter
class User:
def __init__(self,userId):
self.userId=userId

def __repr__(self):
return 'User({})'.format(self.userId)

users=[User(40),User(20),User(30)]
print(users)

#方法1
print(sorted(users,key=lambda u:u.userId))

#方法2
print(sorted(users,key=attrgetter('userId')))
登录后复制

运行结果:

[User(40), User(20), User(30)]
[User(20), User(30), User(40)]
[User(20), User(30), User(40)]
登录后复制

attrgetter通常会更快一点。上面计数同样适用min()和max()函数。

以上是Python实现对自定义类对象排序(利用attrgetter)的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:segmentfault.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板