美文网首页Python,web开发,前端技术分享互联网科技大数据 爬虫Python AI Sql
Python实用技法第13篇:对自定义类对象排序:attrget

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

作者: IT派森 | 来源:发表于2019-08-06 17:31 被阅读0次

    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)]
    Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎
    

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

    相关文章

      网友评论

        本文标题:Python实用技法第13篇:对自定义类对象排序:attrget

        本文链接:https://www.haomeiwen.com/subject/fzyorctx.html