python 使用内置函数sorted对各种数据类型进行排序
python有两个内置的函数用于实现排序,一个是list.sort()函数,一个是sorted()函数。
区别1:list.sort()函数只能处理list类型数据的排序;sorted()则可以处理多种类型数据的排序。
区别2:list.sort()会修改原来的list为排序后的结果;sorted()不会修改原来的数据,只是返回一个排序后的对象。
下面来动手写点代码进行测试:
list进行简单的排序
>>>a=['a','f','c','x','e']
>>>a.sort()
>>>a
[a', 'c', 'e', 'f', 'x']
sorted()进行简单排序
>>>a=['a','f','c','x','e']
>>>a_new=sorted(a)
>>>a_new
['a', 'c', 'e', 'f', 'x']
list.sort()和sorted都有默认的参数reverse,该参数的默认值为“False”,即默认升序排列。如果要进行降序排列:
>>>a=['a','f','c','x','e']
>>>a_new=sorted(a,reverse=True)
>>>a_new
['x', 'f', 'e', 'c', 'a']
对元组进行排列,不能使用list.sort()函数:
>>>a=('a','f','c','x','e')
>>>a_new=a.sort() ttributeError: 'tuple' object has no attribute 'sort'
对字典的排序可以按照字典的key或者value进行排序:
>>>dic={"aa":11,"ff":5,"ee":22}
>>>print sorted(dic.keys())
['aa', 'ee', 'ff']
从python2.4开始list.sort()和sorted()都引入了key参数来指定一个函数进行排序,有了key参数以后我们就可以对更加复杂的数据进行排序 。
假如需要排序的数据为一个list,但list的每一个元素都是一个字典,排序的方法如下:
>>>dic=[{"name":"sunny","age":20},
{"name":"bell","age":5},
{"name":"jim","age":1},
{"name":"jan","age":10}]
>>>print sorted(dic,key=lambda arg:arg.get('age'),reverse=False) #按照每个字典的age的值进行排序,字典的方法dict.get(key)将返回指定键的值。
#输出结果为:[{'age': 1, 'name': 'jim'}, {'age': 5, 'name': 'bell'}, {'age': 10, 'name': 'jan'}, {'age': 20, 'name': 'sunny'}]
>>>print sorted(dic,key=lambda arg:arg.get('name'),reverse=False) #按照每个字典的name的值进行排序
#输出结果为:[{'age': 5, 'name': 'bell'}, {'age': 10, 'name': 'jan'}, {'age': 1, 'name': 'jim'}, {'age': 20, 'name': 'sunny'}]
假如需要排序的数据为一个二维的list,即list的每一个元素也是一个list,方法与上面的例子类似:
>>>a=[['','',''],['','',''],['','','']]
>>>print sorted(a,key=lambda arg:arg[1]) #按照每个list的第1个元素进行排序
[['', '', ''], ['', '', ''], ['', '', '']]
前面的2个例子中,key参数的值都是函数。在sorted函数中,key参数后面的函数的参数的数量只能是一个。lambda arg:arg.get('age')是一个lambda匿名函数,它是一个没有函数名的单语句函数。冒号左边是参数,冒号右边的返回值,返回值将被用于排序。
python 使用内置函数sorted对各种数据类型进行排序的更多相关文章
- Python 内置函数sorted()在高级用法
对于Python内置函数sorted(),先拿来跟list(列表)中的成员函数list.sort()进行下对比.在本质上,list的排序和内建函数sorted的排序是差不多的,连参数都基本上是一样的. ...
- python内置函数sorted()及sort() 函数用法和区别
python内置函数sorted(),sort()都有排序的意思,但是两者有本质的区别,sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作,list 的 sort ...
- python基础-内置函数详解
一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highlight=built#ascii ...
- 如何查看Python的内置函数
经常调用的时候不知道python当前版本的内置函数是哪些,可以用下面的指令查看: C:\Users\Administrator>python Python 2.7.11 (v2.7.11:6d1 ...
- python基础——内置函数
python基础--内置函数 一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highl ...
- Python的内置函数
python的内置函数一共有68个,下面将简单介绍各个函数的功能. abs() dict() help() min() setattr() all() dir() hex() next() slice ...
- 内置函数sorted()
这里顺便说一下sorted()和sort()的异同. sort 是 list 中的方法,只能对列表排序:sorted 可以对所有可迭代对象进行排序. list 的 sort 方法是对原列表进行操作,而 ...
- Python入门-内置函数一
什么是内置函数?就是python给你提供的拿来直接用的函数,比如print,input等等,截止到python版本3.6.2 python一共提供了68个内置函数,他们就是python直接提供给我们的 ...
- python_way,day3 集合、函数、三元运算、lambda、python的内置函数、字符转换、文件处理
python_way,day3 一.集合 二.函数 三.三元运算 四.lambda 五.python的内置函数 六.字符转换 七.文件处理 一.集合: 1.集合的特性: 特性:无序,不重复的序列 如果 ...
随机推荐
- css基础详解(1)
css讲解 声明 1:这里的文字都是我从我自己csdn账号拷贝过来,是本人学习总结的结晶,所以请尊重本作品.2:如要要转载本文章,则要说明文字的出处.3:如有哪里不对或者哪里还不够完善欢迎大家指出. ...
- IEcss样式,行高的问题
input的文本内容显示一定要用line-height,不然会出现内容错位的问题
- 蓝桥网试题 java 基础练习 矩阵乘法
------------------------------------------------------------ 第一次感觉到好好学习的重要性QAQ 在做这道题之前请先学会 :矩阵乘法(百度百 ...
- 蓝桥网试题 java 入门训练 A+B问题
---------------------------------------------------------------------------------------------------- ...
- Hangfire 使用笔记
“巨人们”的地址 Hangfire Mysql: https://github.com/arnoldasgudas/Hangfire.MySqlStorage 在获取set表数据的sql语句有bug ...
- python3 annotations
引文与描述: Adding arbitrary metadata annotations to Python functions and variables 说说我的体会: 类似编译的作用,能够帮助你 ...
- 微信小程序开发带来的思考
若无小程序开发经验,可先阅读 玩转微信小程序 一文. 微信小程序正式上线已有几周时间,相信它的开发模式你已烂熟于胸,可能你也有所疑问,我竟能用 web 语言开发出如此流畅的几乎原生体验的应用.可能你又 ...
- Matlab命令行编译运行HelloWorld
Matlab安装完成后用记事本写一个文件HelloWorld.m内容如下: function HelloWorld() disp('Hello,World!'); end 保存后在命令行中切到Hell ...
- Angular.js之服务与自定义服务学习笔记
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【转】44款Java 网络爬虫开源软件
原帖地址 http://www.oschina.net/project/lang/19?tag=64&sort=time 极简网络爬虫组件 WebFetch WebFetch 是无依赖极简网页 ...