Python实用技法第13篇:对自定义类对象排序:attrgetter

发布时间:2019-07-02 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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,请注明来意。