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()函数一共有三个参数:可迭代对象,即需要排序的对象,以及两个可选参数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 DataFrame数据分组统计groupby()函数的使用
在python的DataFrame中对数据进行分组统计主要使用groupby()函数,本文主要介绍了python DataFrame数据分组统计groupby()函数的使用,具有一定的参考价值,感兴趣的可以了解一下2022-03-03Python报错TypeError: ‘NoneType‘ object is
在Python编程中,TypeError 是一个常见的错误,它表明代码中存在类型不匹配的问题,TypeError: 'NoneType' object is not subscriptable 是一个具体的例子,本文将探讨这个错误的原因,并提供几种解决方案,需要的朋友可以参考下2024-10-10
最新评论