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

最新文章

  1. fat32转ntfs
  2. MongoDB学习笔记~MongoVUE对数据进行查询,排序和按需显示
  3. Java语言的安全性的体现
  4. OpenSource.organization-in-github
  5. 【代码笔记】iOS-检测手机翻转
  6. Java中的异常处理:何时抛出异常,何时捕获异常?
  7. JQuery EasyUI window 用法
  8. iOS—— static和const联合使用;使用static const 与 #define
  9. 慕课网-安卓工程师初养成-2-11 Java常量
  10. ANDROID_MARS学习笔记_S04_006_用获取access_token,access_token_secrect
  11. myeclipse 8.5-10.0 安装 svn 方法(转)
  12. 使用myeclipse新建和删除web项目时一定要小心
  13. PyQt5嵌入matplotlib动画
  14. Nuget私有服务搭建实战
  15. Laravel从入门到精通
  16. mysqldump备份与恢复笔记
  17. airflow docker
  18. ORM PetaPoco 框架的 CRUD 操作
  19. 2018 桂林ccpc现场赛 总结
  20. php数据访问之查询关键字

热门文章

  1. hdu 4862KM&最小费用最大流
  2. Configuration must specify a spooling directory
  3. Spring MVC-集成(Integration)-集成LOG4J示例(转载实践)
  4. HDU 4533
  5. BZOJ 1492 货币兑换 cdq分治或平衡树维护凸包
  6. Android简单调用相机Camera功能,实现打开照相功能
  7. Java 构造时成员初始化的陷阱
  8. ubuntu下7z文件的解压方法
  9. outlook创建收信规则,将收到的所有邮件,转发到qq邮箱,然后删除
  10. What is the difference between task and thread?