python教程对函数中的参数进行排序

 更新时间:2021年09月29日 09:28:45   作者:沉沉沉小姐  
这篇文章主要介绍了python教程对函数中的参数进行排序的方法讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

内建的 sorted() 函数可接受一个用来传递可调用对象( callable ) 的参数 key,而该可调用对象会返回待排序对象中的某些值,sorted则利用这些值来比较对象。

例如,如果应用中有一系列的 User 对象实例,而我们想通过 user_id 属性来对他们排序,则可以提供一个可调用对象将 User 实例作为输入然后返回 user_id。

class User:
    def __init__(self, user_id):
        self.user_id = user_id
    def __repr__(self):
        return 'User({})'.format(self.user_id)
 
users = [User(23), User(3), User(99)]
print(users)
# [User(23), User(3), User(99)]
 
sorted(users, key=lambda u: user_id)
# [User(3), User(23), User(99)]

除了可以用 lambda 表达式外,另一种方式是使用 operator.attrgetter()

from operator import attrgetter
sorted(users, key=attrgetter('user_id'))
# [User(3), User(23), User(99)]

要使用 lambda 表达式还是 attrgetter() 或许只是一种个人喜好。但是通常来说,attrgetter() 要更快一些,而且允许同时提取多个字段值的能力。

这和针对字典的 operator.itemgetter() 的使用很类似。

如果 User 实例还有一个 first_name 和 last_name 属性的话,可以执行如下的排序操作:

by_name = sorted(users, key=attrgetter('last_name', 'first_name'))

同样,本节所用到的技术也使用于像 min() 和 max() 这样的函数。

min(Users, key=attrgetter('user_id'))
# User(3)
max(Users, key=attrgetter('user_id'))
# User(99)

以上就是python教程对函数中的参数进行排序的详细内容,更多关于Python参数排序的资料请关注脚本之家其它相关文章!

相关文章

  • python使用reportlab生成pdf实例

    python使用reportlab生成pdf实例

    大家好,本篇文章主要讲的是python使用reportlab生成pdf实例,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • 基于Django URL传参 FORM表单传数据 get post的用法实例

    基于Django URL传参 FORM表单传数据 get post的用法实例

    今天小编就为大家分享一篇基于Django URL传参 FORM表单传数据 get post的用法实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 解决使用openpyxl时遇到的坑

    解决使用openpyxl时遇到的坑

    这篇文章主要介绍了解决使用openpyxl时遇到的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • VSCode基础使用与VSCode调试python程序入门的图文教程

    VSCode基础使用与VSCode调试python程序入门的图文教程

    这篇文章主要介绍了VSCode基础使用+VSCode调试python程序入门图文教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • python中matplotlib条件背景颜色的实现

    python中matplotlib条件背景颜色的实现

    这篇文章主要给大家介绍了关于python中matplotlib条件背景颜色的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • python3正则提取字符串里的中文实例

    python3正则提取字符串里的中文实例

    今天小编就为大家分享一篇python3正则提取字符串里的中文实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python实现类似jQuery使用中的链式调用的示例

    Python实现类似jQuery使用中的链式调用的示例

    chained calls链式调用其实多是指一种方法链的程序写法,这里我们来看一下Python实现类似jQuery使用中的链式调用的示例,首先说明一下什么是链式调用:
    2016-06-06
  • python使用urlparse分析网址中域名的方法

    python使用urlparse分析网址中域名的方法

    这篇文章主要介绍了python使用urlparse分析网址中域名的方法,涉及Python使用urlparse模块操作URL的技巧,需要的朋友可以参考下
    2015-04-04
  • 详解Python中元组的三个不常用特性

    详解Python中元组的三个不常用特性

    元组是Python中一种重要的内置数据类型。与列表一样,我们经常使用元组将多个对象保存为相应的数据容器。本文为大家总结了元组的三个不常用特性,感兴趣的小伙伴可以了解一下
    2022-07-07
  • Python中元组的基础介绍及常用操作总结

    Python中元组的基础介绍及常用操作总结

    元组是一种不可变序列。元组变量的赋值要在定义时就进行,这就像C语言中的const变量或是C++的引用,定义时赋值之后就不允许有修改。元组存在的意义是:元组在映射中可以作为键使用,因为要保证键的不变性。元组作为很多内置函数和方法的返回值存在
    2021-09-09

最新评论