Python中的sorted函数使用解析

 更新时间:2023年10月31日 10:11:04   作者:惊瑟  
这篇文章主要介绍了Python中的sorted函数使用解析,sorted()函数可以对可迭代对象进行排序,并且可以人为指定排序的依据以及方式,本文提供了解决与部分实现代码,需要的朋友可以参考下

sorted()函数

sorted()函数可以对可迭代对象进行排序,并且可以人为指定排序的依据以及方式。

先看下sorted() 帮助文档:

>>>help(sorted)
sorted(iterable, /, *, key=None, reverse=False)
Return a new list containing all items from the iterable in ascending order.
A custom key function can be supplied to customize the sort order, and the
reverse flag can be set to request the result in descending order.

可以看出sorted()函数一共有三个参数:可迭代对象,即需要排序的对象,以及两个可选参数key、reverse。 其中,key是排序的依据;reverse是指升序还是降序,默认升序列。 看下具体例子,将一个字典内容按照value从大到小排列:

exam_res = {
    'Mike':75,
    'Judy':88,
    'Cris':57
}
print(sorted(exam_res.items(),key=lambda i:i[1]))

输出:

[('Judy', 88), ('Mike', 75), ('Cris', 57)]

这里可能有人有疑惑,为什么迭代对象是exam_res.items(),而不是字典本身。这里就要注意了,如果字典作为一个可迭代对象,本质上是对字典的key进行迭代;而exam_res.items()则是对字典中每一个key以及value包成的tuple进行迭代。可以测试一下:

for i in exam_res:
    print(i)

for i in exam_res.items():
    print(i)

输出:

Mike
Judy
Cris
('Mike', 75)
('Judy', 88)
('Cris', 57)

所以,如果需要按照value进行排序,可迭代对象中必须含有value,因此需要使用exam_res.items()。

还有一点需要注意,给key传入的是一个函数,该函数就是排序的依据,函数可以自定义,也可以用匿名函数,函数的入参是每一个迭代的对象,对于上面的例子而言,第一次迭代时,匿名函数的入参i = ('Mike', 75),因此i[1]就代表取value。

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

相关文章

  • python实现的解析crontab配置文件代码

    python实现的解析crontab配置文件代码

    这篇文章主要介绍了python实现的解析crontab配置文件代码,也可以说是python版的crontab,代码中包含大量注释,需要的朋友可以参考下
    2014-06-06
  • Opencv图像处理之详解掩膜mask

    Opencv图像处理之详解掩膜mask

    这篇文章主要介绍了Opencv图像处理之详解掩膜mask,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • python实现实时监控文件的方法

    python实现实时监控文件的方法

    这篇文章主要为大家详细介绍了python实现实时监控文件的3种方法,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • python抓取网页时字符集转换问题处理方案分享

    python抓取网页时字符集转换问题处理方案分享

    python学习过程中发现英文不好学起来挺困难的,其中小弟就遇到一个十分蛋疼的问题,百度了半天就没找到解决办法~囧~摸索了半天自己解决了,记录下来与君共勉。
    2014-06-06
  • OpenCV基础操作指南之图片的读取与写出

    OpenCV基础操作指南之图片的读取与写出

    图像处理依赖于得到一幅图像(例如,一张照片和一个视频帧)并通过应用信号处理技术的“播放”(playing)来得到预期的结果,这篇文章主要给大家介绍了关于OpenCV基础操作指南之图片读取与写出的相关资料,需要的朋友可以参考下
    2022-01-01
  • 使用numpy.ndarray添加元素

    使用numpy.ndarray添加元素

    这篇文章主要介绍了使用numpy.ndarray添加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • python中遍历文件的3个方法

    python中遍历文件的3个方法

    这篇文章主要介绍了python中遍历文件的3个方法,本文分别使用os.path.walk()、os.walk()、os.listdir()来实现,需要的朋友可以参考下
    2014-09-09
  • 如何基于Python深度图生成3D点云详解

    如何基于Python深度图生成3D点云详解

    通常使用TOF等3d摄像头采集的格式一般只是深度图,下面这篇文章主要给大家介绍了关于如何基于Python深度图生成3D点云的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • python爬虫框架Scrapy基本应用学习教程

    python爬虫框架Scrapy基本应用学习教程

    这篇文章主要为大家介绍了python爬虫框架Scrapy的基本应用学习教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • Django高级编程之自定义Field实现多语言

    Django高级编程之自定义Field实现多语言

    这篇文章主要介绍了Django高级编程之自定义Field实现多语言,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07

最新评论