本篇文章给大家带来的内容是关于python实现对自定义类对象排序(利用attrgetter),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
1、需求
对自定义的类组成的列表进行排序。2、解决方案
内建的sorted()函数可接受一个用来传递可调用对象(callable)的参数key,而该可调用对象会返回待排序对象中的某些值,sorted则利用这些值来比较对象。
实例:
使用模板与程序分离的方式构建,依靠专门设计的数据库操作类实现数据库存取,具有专有错误处理模块,通过 Email 实时报告数据库错误,除具有满足购物需要的全部功能外,成新商城购物系统还对购物系统体系做了丰富的扩展,全新设计的搜索功能,自定义成新商城购物系统代码功能代码已经全面优化,杜绝SQL注入漏洞前台测试用户名:admin密码:admin888后台管理员名:admin密码:admin888
立即学习“Python免费学习笔记(深入)”;
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()函数。










