Python中Sorted()函数的key参数使用方法详解

 更新时间:2024年04月30日 09:21:35   作者:豫州刺史  
这篇文章主要介绍了关于Python中Sorted()函数的key参数使用方法 ,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、sorted函数

sorted() 函数是 Python 内置的一种排序函数,它可以对序列进行排序,并且返回排序后的结果。该函数的语法格式如下:

sorted(iterable, /, *, key=None, reverse=False)

其中,iterable 是待排序的元素集合,可以是列表、元组、字典等可迭代对象。key 和 reverse 是可选参数。

  • key 参数用于指定一个函数该函数将应用于待排序的每个元素上,获取用于排序的关键字(key)。具体来说,key 参数需要传递一个函数它会取待排序元素作为输入,并返回一个用于定制排序的关键字。默认为 None,表示直接比较待排序元素本身进行排序。
  • reverse 参数是一个布尔值,用于决定排序顺序。默认值为 False,表示升序排序。如果将该参数指定为 True,则表示降序排序。

下面举一个例子,说明在实际应用中 sorted() 函数的用法:

from collections import namedtuple

# 构造一个命名元组类型
Person = namedtuple('Person', ['name', 'age', 'gender'])

# 创建一个 Person 的列表
people = [
    Person('Alice', 22, 'F'),
    Person('Bob', 35, 'M'),
    Person('Charlie', 28, 'M'),
    Person('David', 28, 'M'),
    Person('Eva', 21, 'F')
]

# 按年龄进行升序排序
people_by_age = sorted(people, key=lambda p: p.age)
print(people_by_age)

# 按姓名的首字母进行降序排序
people_by_first_letter = sorted(people, key=lambda p: p.name[0], reverse=True)
print(people_by_first_letter)

===结果===
[Person(name='Eva', age=21, gender='F'), Person(name='Alice', age=22, gender='F'), Person(name='Charlie', age=28, gender='M'), Person(name='David', age=28, gender='M'), Person(name='Bob', age=35, gender='M')]
[Person(name='Eva', age=21, gender='F'), Person(name='David', age=28, gender='M'), Person(name='Charlie', age=28, gender='M'), Person(name='Bob', age=35, gender='M'), Person(name='Alice', age=22, gender='F')]

在上述代码中,我们使用了 namedtuple 来定义了一个名为 Person 的命名元组类型,并创建了一个 people 列表来保存多个 Person 的实例。

我们使用 sorted() 函数对 people 列表进行了升序和降序排序。升序排序是通过 key 参数指定了按照 Person 对象的 age 属性进行排序,而降序排序是通过 key 参数指定了按照 Person 对象的 name 属性的第一个字母的 ASCII 值进行排序。

当需要对复杂的数据结构进行排序时,我们经常需要自定义排序规则。此时,我们可以通过将自定义的函数作为 key 参数赋值,来实现对数据结构按照任意排序规则进行排序。

下面就给出一个示例,其中 key 参数通过一个自定义的函数实现对一个包含学生信息的列表进行按照成绩降序排序:

# 定义一个包含学生信息的列表
students = [('Alice', 95), ('Bob', 83), ('Charlie', 72), ('David', 90), ('Eva', 87)]

# 使用一个自定义的函数,对学生信息按照成绩降序排序
def sort_by_score(student):
    return student[1]

students_sorted_by_score = sorted(students, key=sort_by_score, reverse=True)
print(students_sorted_by_score)
===输出结果如下所示:===
[('Alice', 95), ('David', 90), ('Eva', 87), ('Bob', 83), ('Charlie', 72)]

在上述代码中,我们首先定义了一个包含多个学生信息的列表 students,每个学生信息包含了姓名和成绩两个元素。接下来,我们定义了一个自定义函数 sort_by_score,该函数的输入参数是一个学生信息,我们将该学生信息的成绩作为排序的关键字。

通过将 sort_by_score 函数赋值给 sorted() 函数中的 key 参数,我们就实现了对学生列表按照学生成绩进行降序排序的目的。

总结

到此这篇关于Python中Sorted()函数的key参数使用方法的文章就介绍到这了,更多相关Python Sorted()函数key参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • import的本质解析

    import的本质解析

    import是我们经常使用的功能,方法大家也都会。虽然用的多,但它的本质我们似乎没有好好的了解过。本文就import的本质解析,向大家作了介绍,需要的朋友可以参考下。
    2017-10-10
  • Python标准库shutil模块使用方法解析

    Python标准库shutil模块使用方法解析

    这篇文章主要介绍了Python标准库shutil模块使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Python机器学习算法之决策树算法的实现与优缺点

    Python机器学习算法之决策树算法的实现与优缺点

    决策树(Decision Tree)是一种基本的分类与回归方法,这篇文章主要给大家介绍了关于Python机器学习算法之决策树算法实现与优缺点的相关资料,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • python 格式化输出百分号的方法

    python 格式化输出百分号的方法

    今天小编就为大家分享一篇python 格式化输出百分号的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Django项目打包完整步骤以及可能出现的问题

    Django项目打包完整步骤以及可能出现的问题

    django项目的结构大体上都是类似,打包主要的功能就是把一些不需要部署的文件剔除,把需要部署的文件直接压缩打包,下面这篇文章主要给大家介绍了关于Django项目打包完整步骤以及可能出现问题的相关资料,需要的朋友可以参考下
    2023-06-06
  • Python淘宝或京东等秒杀抢购脚本实现(秒杀脚本)

    Python淘宝或京东等秒杀抢购脚本实现(秒杀脚本)

    本篇文章主要介绍了Python 通过selenium实现毫秒级自动抢购的示例代码,通过扫码登录即可自动完成一系列操作,抢购时间精确至毫秒,可抢加购物车等待时间结算的,也可以抢聚划算、火车票等的商品,感兴趣的朋友跟随小编一起看看吧
    2022-10-10
  • Django models文件模型变更错误解决

    Django models文件模型变更错误解决

    这篇文章主要介绍了Django models文件模型变更错误解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • python查询文件夹下excel的sheet名代码实例

    python查询文件夹下excel的sheet名代码实例

    这篇文章主要介绍了python查询文件夹下excel的sheet名方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Python制作Windows按键通知脚本

    Python制作Windows按键通知脚本

    对于键盘没有背光灯的同学而言,切换大小写或控制Num键开关的时候没有提示,经常需要试探性地输入一些字符来判断开关是否打开,体验非常糟糕。所以本文就来用Python做一个Windows按键通知脚本,需要的可以参考一下
    2022-11-11
  • python实现画图工具

    python实现画图工具

    这篇文章主要为大家详细介绍了python实现画图工具,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08

最新评论