python的sorted函数及使用解析
作者:问就是啥也不是 时间:2022-03-02 05:52:21
一、sort函数
如果对python中的列表进行排序,可以使用List类的成员函数sort,该函数会在原空间上进行操作,对列表本身进行修改,不返回副本。语法如下:
L.sort(cmp=None, key=None, reverse=False)
二、sorted函数
sorted函数就比sort函数要强大许多了,sort只能对列表进行排序,sorted可以对所有可迭代类型进行排序,并且返回新的已排序的列表。语法如下:
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
一共可接受4个参数,含义分别如下:
1.可迭代类型,例如字典、列表、
2.比较函数
3.可迭代类型中某个属性,对给定元素的每一项进行排序
4.降序或升序
三、结合使用
与sorted经常结合使用的有:
1.比较函数经常会用到lambda。
lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。比如对元组组成的列表中某一项进行排序:
students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10),]
sorted(students, key=lambda student : student[2]) # sort by age
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
2.比较函数经常会用到operator.itemgetter函数
operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号。
要注意,operator.itemgetter函数获取的不是值,而是定义了一个函数,通过该函数作用到对象上才能获取值。
sorted函数用来排序,sorted(iterable[, cmp[, key[, reverse]]])
其中key的参数为一个函数或者lambda函数。所以itemgetter可以用来当key的参数
例如根据第二个域和第三个域进行排序
a = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
sorted(students, key=operator.itemgetter(1,2))
3.可迭代元素经常会用到items
items是字典中的一个方法,返回由元组组成的列表。
四、对字典的值进行排序
dict={'a':1,'b':2}
ans = sorted(dict.items(), key = lambda x:x[1], reverse = True)
Python中sorted()用法
sorted()函数:返回一个排序后的新序列,不改变原始序列。
我们知道,Python中列表是基本数据类型之一,是写在方括号之间,用逗号分隔开的元素序列。可以同时存在数字、字符串、元组、字典、集合等数据类型的对象,甚至可以包含列表(即嵌套),例如。[1,2,3] [a,b,c] [123,[abc]]
关于列表的常用函数,例如sorted()函数,具体用法及案例如下:
sorted(iterable[,key][,reverse])返回一个排序后的新序列,不改变原始的序列。
第一个参数interable是可迭代的对象。
第二个参数key用来指定一个带参数的函数,该函数会在每个元素排序前被调用,如key=abs #按绝对值大小排序。
key指定的函数将作用于list的每一个元素上,并根据key指定的函数返回的结果进行排序。
第三个参数reverse用来指定正向还是反向排序
如反向排序第三个参数reverse=True:
例如>>>sorted(['bcd','about','diff','create'],key=str.lower,reverse=True) #按小写反向排序
['diff','create','bcd','about']
来源:https://blog.csdn.net/bcfdsagbfcisbg/article/details/82801835
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
分面搜索(Faceted Search)
![](https://img.aspxhome.com/file/UploadPic/20097/31/0907_facetedsearch_10-93s.jpg)
分布式爬虫scrapy-redis的实战踩坑记录
![](https://img.aspxhome.com/file/2023/9/120969_0s.png)
pytorch 如何使用float64训练
![](https://img.aspxhome.com/file/2023/5/64675_0s.png)
基于go+vue实现的golang每日新闻数据浏览与检索平台(推荐)
![](https://img.aspxhome.com/file/2023/6/89026_0s.jpg)
ASP缓存类 【先锋缓存类】Ver2004
python自制简易mysql连接池的实现示例
Mootools 1.2教程(3)——数组使用简介
Flask入门教程实例:搭建一个静态博客
![](https://img.aspxhome.com/file/2023/4/94124_0s.png)
网站细节论(1)--阅读的细节
![](https://img.aspxhome.com/file/UploadPic/200712/21/20071221122819275s.gif)
Python 新建文件夹与复制文件夹内所有内容的方法
python使用yield压平嵌套字典的超简单方法
![](https://img.aspxhome.com/file/2023/0/93670_0s.jpg)
Python 日期的转换及计算的具体使用详解
深入解析Python编程中JSON模块的使用
为什么要进行CSS缩写?
![](https://img.aspxhome.com/file/UploadPic/200710/29/2007102913194943s.gif)
Go 值传递与引用传递的方法
![](https://img.aspxhome.com/file/2023/3/89023_0s.png)
将MySQL 5.0下的数据导入到MySQL 3.23中
对Python的交互模式和直接运行.py文件的区别详解
python SSH模块登录,远程机执行shell命令实例解析
PHP实现页面静态化的超简单方法
![](https://img.aspxhome.com/file/2023/2/72682_0s.jpg)