Python函数式编程——sorted和sort函数
来源:互联网 发布:淘宝店铺叫什么名字好 编辑:程序博客网 时间:2024/05/17 00:10
这节主要讲的是sorted,因为sort函数的排序仅限于列表,而sorted对于所有的可迭代对象都可进行排序,所以更加的常用。
还有一点是比较重要的,对于排序sort是在list的原址上进行排序排序的,而sorted返回的是一个已经排好序的副本,其原址Iterable的序列并没有变化
**在正式将sorted函数之前,我们简单的讲一下Python的匿名函数lambda(其在Python中用的比较窄)
其在其一般形式为lambda x: x+x 返回的是计算的结果。其中冒号前的x代表的是参数,后面的对于x的操作代表的是返回的结果
其相当于函数:
def fn(x):
return x+x
所以lambda常用在sorted的第二个参数上,用于返回关键字或是序列的新值**
二、sorted函数
(一)、sorted的参数:
sorted(Iterable,key,reverse)
如上,sorted有三个参数
①Iterable是带排序的可迭代对象
②key其对应一个函数,该函数作用于可迭代对象的每个值上,并返回函数操作的结果排序是根据每个迭代数值返回的结果排序,但排序返回的结果还是原来list中的元素。
③reverse 有两个值:reverse=True和reverse=False,分别指示对Iterable的排序是按倒序和顺序来排列,其默认值是第二个(默认按顺序排列的)
举个例子:
>>>Iiterable=[3,45,56,2,4]>>>list=sorted(Iiterable,key=lambda x:-x,reverse=True)>>>list[2,3,4,45,56]
在用sorted进行dict排序时,对key值,value值和item进行排序的方法如下:
首先确定一个dict:
di={3:2,3:6,8:5,9:1}
对于di的di.values()指将di中的value值取出来单独作为一个list
如:
>>>di={3:2,3:6,8:5,9:1}>>>di.values()dict.values([2,6,5,1])
同样,对于key值也是取出来作为一个list但是对di进行di.items()操作是将di中的每个(key-value)对,做成一个元组,然后将所有的元组组合形成一个list所以,就可以将对dict形式的排序转化为对list形式的排序了
>>>sorted(di.values())[1,2,5,6]>>>sorted(di.keys())[1,3,3,5]#而对于item的排序需要在key函数中指出根据元组中的那个元素进行排序>>>sorted(di.items(),key=lambda item:item[0])[(1,9),(3,2),(3,6),(8,5)] #式子中的item是一个参数名,可以是任意变量名,不一定是item
好了,这就是对于sorted函数的讲解了。当然sort函数跟sorted的用法基本一致,只不过sort函数只能用于list的排序
,而sorted函数可用于任何可迭代的对象。这个前面已经讲过了
。
- Python函数式编程——sorted和sort函数
- python—sort()与sorted()函数
- Python中sort 和 sorted函数
- python中sort和sorted函数小结
- python中sort和sorted函数
- Python排序函数sort()和sorted()详解
- Python中sort函数、sorted函数和argsort函数
- python中sort()函数和sorted()函数的区别
- Python的排序方法:list.sort函数和sorted函数
- Python sort sorted函数详解
- Python sort sorted函数详解
- Python sort sorted函数详解
- Python sort sorted函数详解
- Python基础 7 ---- Python内置sort和sorted函数
- [Python]sorted()函数与list.sort()函数
- Python的sort函数和sorted、lambda和cmp
- sort()和sorted函数总结
- Python中排序sort 、sorted和argsort函数
- UITableView/UICollectionView调用reloadData刷新时界面闪烁
- AI英雄 | 对话投资大咖Dyson:人工智能无处不在 却又相当脆弱
- QT查询数据库中的数据在tableview显示
- 重磅 | 向未来致敬!2017网易未来科技峰会乌镇论坛将于12月4日在乌镇举办
- 卸载python的正确姿势
- Python函数式编程——sorted和sort函数
- tomcat中使用异步servlet要点
- Android验证码
- Android实现录屏直播(一)ScreenRecorder的简单分析
- 手机端本地图片或者拍照的上传功能
- MSP430fr6989配合A7129发送一帧无线数据包的操作过程
- hdu Max Sum
- 公开课程表
- 利用activeMQ消息中间件整合spring mail发邮件