python排序sorted与sort比较 (转)
Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列。
sorted(iterable,key=None,reverse=False),返回新的列表,对所有可迭代的对象均有效
sort(key=None,reverse=False) 就地改变列表 reverse:True反序;False 正序
Example1:
>>>sorted([1,5,3,2,9])
[1,2,3,5,9]
>>>a=[5,3,2,1,4]
>>>a.sort()
>>>a
[1,2,3,4,5] #若用list.sort()则list本身将被修改
>>>sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})
[1,2,3,4,5] #sorted()对所有的可迭代序列都有效
在python2.4开始,list.sort()和sorted()增加key参数来指定一个函数,此函数在每个元素比较前被调用。
Example2:
>>>sorted("This is a test string from Andrew".split(), key=str.lower) #加了key,忽略大小写
['a', 'Andrew', 'from', 'is', 'string', 'test', 'This'] #key=len按照长度进行排序
>>>sorted("This is a test string from Andrew".split()) #未加key,默认大写在前,小写在后
['Andrew', 'This', 'a', 'from', 'is', 'string', 'test']
更多的情况是用复杂对象的某些值来对复杂对象进行排序。
Example3:
>>> student_tuples = [('john', 'A', 15),('jane', 'B', 12),('dave', 'B', 10),]
>>> sorted(student_tuples, key=lambda student: student[2]) # sort by age
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
>>>student_tuples.sort(key=lambda x: x[2])
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
Example4:
>>>s=”Hello79351WorldMyNameIsMrFiona0352231964”
>>>''.join(sorted(s,key=lambda x: (x.isdigit(),x.isdigit() and int(x)%2==0,x.islower(),x.isupper(),x)))
'FHIMMNWaadeeilllmnooorrsy113335579902246'
大写在前,小写在后,数字放在最后并且奇数在偶数之前
>>>s={‘a’:10,’t’:5,’c’:2,’b’:12}
>>>sorted(s,key=lambda x:x[0])
[‘a’,’b’,’c’,’t’]
>>>s=[]
原文地址:https://www.cnblogs.com/MrFiona/p/5958918.html
最新文章
- fat32转ntfs
- MongoDB学习笔记~MongoVUE对数据进行查询,排序和按需显示
- Java语言的安全性的体现
- OpenSource.organization-in-github
- 【代码笔记】iOS-检测手机翻转
- Java中的异常处理:何时抛出异常,何时捕获异常?
- JQuery EasyUI window 用法
- iOS—— static和const联合使用;使用static const 与 #define
- 慕课网-安卓工程师初养成-2-11 Java常量
- ANDROID_MARS学习笔记_S04_006_用获取access_token,access_token_secrect
- myeclipse 8.5-10.0 安装 svn 方法(转)
- 使用myeclipse新建和删除web项目时一定要小心
- PyQt5嵌入matplotlib动画
- Nuget私有服务搭建实战
- Laravel从入门到精通
- mysqldump备份与恢复笔记
- airflow docker
- ORM PetaPoco 框架的 CRUD 操作
- 2018 桂林ccpc现场赛 总结
- php数据访问之查询关键字
热门文章
- hdu 4862KM&;最小费用最大流
- Configuration must specify a spooling directory
- Spring MVC-集成(Integration)-集成LOG4J示例(转载实践)
- HDU 4533
- BZOJ 1492 货币兑换 cdq分治或平衡树维护凸包
- Android简单调用相机Camera功能,实现打开照相功能
- Java 构造时成员初始化的陷阱
- ubuntu下7z文件的解压方法
- outlook创建收信规则,将收到的所有邮件,转发到qq邮箱,然后删除
- What is the difference between task and thread?