[转].Python中sorted函数的用法
【Python】 sorted函数
对给定的List L进行排序,
方法1.用List的成员函数sort进行排序,在本地进行排序,不返回副本
方法2.用built-in函数sorted进行排序(从2.4开始),返回副本,原始输入不变
--------------------------------sorted---------------------------------------
>>> help(sorted)
Help on built-in function sorted in module __builtin__:
sorted(...)
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
---------------------------------sort----------------------------------------
>>> help(list.sort)
Help on method_descriptor:
sort(...)
L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
cmp(x, y) -> -1, 0, 1
-----------------------------------------------------------------------------
iterable:是可迭代类型;
cmp:用于比较的函数,比较什么由key决定;
key:用列表元素的某个属性或函数进行作为关键字,有默认值,迭代集合中的一项;
reverse:排序规则. reverse = True 降序 或者 reverse = False 升序,有默认值。
返回值:是一个经过排序的可迭代类型,与iterable一样。
sort(key=f)
. 对由tuple组成的List排序
- >>> students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10),]
用key函数排序:返回由tuple组成的list
- >>> sorted(students, key=lambda student : student[2]) # sort by age
- [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
用cmp函数排序
- >>> sorted(students, cmp=lambda x,y : cmp(x[2], y[2])) # sort by age
- [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
用 operator 函数来加快速度,
- >>> from operator import itemgetter, attrgetter
- >>> sorted(students, key=itemgetter(2))
用 operator 函数进行多级排序
- >>> sorted(students, key=itemgetter(1,2)) # sort by grade then by age
- [('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)]
2. 对由字典排序 ,返回由tuple组成的List,不再是字典。
- >>> d = {'data1':3, 'data2':1, 'data3':2, 'data4':4}
- >>> sorted(d.iteritems(), key=itemgetter(1), reverse=True)
- [('data4', 4), ('data1', 3), ('data3', 2), ('data2', 1)]
最新文章
- gcc工具链简述
- Mysql date_sub函数使用
- 查找-find -grep
- 【Unity探究】物理碰撞实验
- php 截取字符串
- 每天一点点java---继承exception类来实现自己的异常类
- 3.jsp基本语法笔记
- Servlet与Jsp的结合使用实现信息管理系统二
- PHP 引用是个坑,请慎用
- Dynamics CRM2013 Form利用window.location.reload()进行全局刷新带来的问题及解决办法
- python3编码(encode,decode)
- Spring Developer Tools 源码分析:二、类路径监控
- Nginx反代至Tomcat基于memcached的session保持
- android判断adb调试是否打开及代码跳转到开发者选项界面
- python-异常
- VMware10 安装centos6.7 设置NAT模式固定ip
- Python_oldboy_自动化运维之路_面向对象2(十)
- 魅族推送 简介 集成 MD
- Webwork【08】结合实战简析Controller 配置
- dubbo监控工具