本篇文章给大家带来的内容是关于Python实现对自定义类对象排序(利用attrgetter),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
1、需求
对自定义的类组成的列表进行排序。
2、解决方案
内建的sorted()函数可接受一个用来传递可调用对象(callable)的参数key,而该可调用对象会返回待排序对象中的某些值,sorted则利用这些值来比较对象。
实例:
from operator import attrgetterclass User:def __init__(self,userId):self.userId=userIddef __repr__(self):return 'User({})'.format(self.userId)users=[User(40),User(20),User(30)]print(users)#方法1print(sorted(users,key=lambda u:u.userId))#方法2print(sorted(users,key=attrgetter('userId')))
运行结果:
[User(40), User(20), User(30)][User(20), User(30), User(40<div style="color:transparent">本文来源gaodai^.ma#com搞#代!码网</div>)][User(20), User(30), User(40)]
attrgetter通常会更快一点。上面计数同样适用min()和max()函数。
以上就是Python实现对自定义类对象排序(利用attrgetter)的详细内容,更多请关注搞代码gaodaima其它相关文章!