python sorted函数详解

python 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()函数一共有三个参数:可迭代对象,即需要排序的对象,以及两个可选参数keyreverse
其中,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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204072.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午9:04
下一篇 2026年3月19日 下午9:04


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号