内置的列表类型提供sort的方法

可以根据多项指标给list实例中的元素排序。在默认情况下,sort方法总是按照自然升序排列列表内的元素

#升序排列
list1=[2,3,1,2,5]
list1.sort()
print(list1) #[1, 2, 2, 3, 5] #降序排列可以使用指定参数reverse=True(默认是False)
list1=[2,3,1,2,5]
list1.sort(reverse=True)
print(list1) #[5, 3, 2, 2, 1]

对多个标准进行排序

在Python语言里,最简单的方案是利用元组(tuple)类型实现。元组是一种不可变的序列,能够存放任意的Python值。两个元组之间是可以比较的,因为这种类型本身已经定义了自然顺序

#元组可以比较大小,会依次比较每个位置的那两个对应元素,直到能够确定大小为止
a=(1,"a")
b=(2,"a")
print( a > b) #False c=(1,"b")
d=(1,"a")
print( c > d) #True

根据这个特性我们可以把需要比较的标准组成元组

a=[(4,"a"),(2,"b"),(4,"b"),(2,"a"),(3,"e")]
a.sort()
print(a) #[(2, 'a'), (2, 'b'), (3, 'e'), (4, 'a'), (4, 'b')] #如果我们只想特殊标准去排序可以使用关键词key
b=[(4,"a"),(2,"b"),(4,"b"),(2,"a"),(3,"e")]
#只按第一个标准去排序,如果第一个标准判断一致,则按原顺序排序
b.sort(key = lambda x : x[0])
print(b) #[(2, 'b'), (2, 'a'), (3, 'e'), (4, 'a'), (4, 'b')]

组合:

#按第一个标准去降序排序(这里用到一个一元减操作符),第二个参数升序
c=[(4,"a"),(2,"b"),(4,"b"),(2,"a"),(3,"e")]
c.sort(key = lambda x : (-x[0],x[1]))
print(c) #[(4, 'a'), (4, 'b'), (3, 'e'), (2, 'a'), (2, 'b')]

最新文章

  1. 【JUC】JDK1.8源码分析之CopyOnWriteArraySet(七)
  2. 用Backbone.js创建一个联系人管理系统(四)
  3. PHP 数组函数整理
  4. shell ftp上传下载文件
  5. Xcode6.1模拟器ios8.1模拟器不能弹出虚拟键盘及虚拟键盘无法切换中文输入的解决办法
  6. &amp与&
  7. 为什么C#动态调用Java的cxf多了bool型参数
  8. H3 BPM 跨平台表单发起详解
  9. phpcms 制作简单企业站的常用标签
  10. 如何修改HTML5 input placeholder 颜色
  11. 团队作业7——第二次项目冲刺(Beta版本12.10)
  12. [bzoj1041][HAOI2008]圆上的整点
  13. go语言圣经练习
  14. [Swift]LeetCode242. 有效的字母异位词 | Valid Anagram
  15. oracle 查询数据库的约束条件
  16. Selenium自动化测试框架的搭建
  17. 2java判断素数
  18. 【BZOJ2285】[SDOI2011]保密(分数规划,网络流)
  19. Paper Reading: Perceptual Generative Adversarial Networks for Small Object Detection
  20. [转]使用keepalived搭建主备切换环境

热门文章

  1. char型变量中能不能存储一个中文字符?为什么?
  2. kafka的message格式是什么样的?
  3. Java的HashMap是如何工作的?
  4. SpringBoot 上传文件大小限制,SizeLimitExceededException: the request was rejected because its size (64042302) exceeds the configured maximum (10485760)
  5. 三、MyCat主要配置介绍
  6. Spring 应用程序有哪些不同组件?
  7. idea推送项目到github
  8. C语言之API
  9. Linux中一切皆文件
  10. 付费漫画下载、付费韩漫下载、漫画VIP下载、VIP韩漫下载哪里下