脚本宝典收集整理的这篇文章主要介绍了Python实用技法第13篇:对自定义类对象排序:attrgetter,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
上一篇文章:Python实用技法第12篇:通过公共键对字典列表排序:itemgetter
下一篇文章:Python实用技法第14篇:根据字段将记录分组:itertools.groupby()
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实用技法第12篇:通过公共键对字典列表排序:itemgetter
下一篇文章:Python实用技法第14篇:根据字段将记录分组:itertools.groupby()
以上是脚本宝典为你收集整理的Python实用技法第13篇:对自定义类对象排序:attrgetter全部内容,希望文章能够帮你解决Python实用技法第13篇:对自定义类对象排序:attrgetter所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。