这篇文章主要介绍了Python中对列表排序实例,需要的朋友可以参考下

很多时候,我们需要对List进行排序,Python提供了两个方法,对给定的List L进行排序:

方法1.用List的成员函数sort进行排序

方法2.用built-in函数sorted进行排序(从2.4开始)

这两种方法使用起来差不多,以第一种为例进行讲解:

从Python2.4开始,sort方法有了三个可选的参数,Python Library Reference里是这样描述的

实例1:>>>L = [2,3,1,4]

>>>L.sort()

>>>L

>>>[1,2,3,4]

实例2:>>>L = [2,3,1,4]

>>>L.sort(reverse=True)

>>>L

>>>[4,3,2,1]

实例3:>>>L = [('b',2),('a',1),('c',3),('d',4)]

>>>L.sort(cmp=lambda x,y:cmp(x[1],y[1]))

>>>L

>>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

实例4:>>>L = [('b',2),('a',1),('c',3),('d',4)]

>>>L.sort(key=lambda x:x[1])

>>>L

>>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

实例5:>>>L = [('b',2),('a',1),('c',3),('d',4)]

>>>import operator

>>>L.sort(key=operator.itemgetter(1))

>>>L

>>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

实例6:(DSU方法:Decorate-Sort-Undercorate)>>>L = [('b',2),('a',1),('c',3),('d',4)]

>>>A = [(x[1],i,x) for i,x in enumerate(L)] #i can confirm the stable sort

>>>A.sort()

>>>L = [s[2] for s in A]

>>>L

>>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

以上给出了6中对List排序的方法,其中实例3.4.5.6能起到对以List item中的某一项

为比较关键字进行排序.

效率比较:

cmp < DSU < key

通过实验比较,方法3比方法6要慢,方法6比方法4要慢,方法4和方法5基本相当

多关键字比较排序:

实例7:>>>L = [('d',2),('a',4),('b',3),('c',2)]

>>> L.sort(key=lambda x:x[1])

>>> L

>>>[('d', 2), ('c', 2), ('b', 3), ('a', 4)]

我们看到,此时排序过的L是仅仅按照第二个关键字来排的,如果我们想用第二个关键字

排过序后再用第一个关键字进行排序呢?有两种方法

实例8:>>> L = [('d',2),('a',4),('b',3),('c',2)]

>>> L.sort(key=lambda x:(x[1],x[0]))

>>> L

>>>[('c', 2), ('d', 2), ('b', 3), ('a', 4)]

实例9:>>> L = [('d',2),('a',4),('b',3),('c',2)]

>>> L.sort(key=operator.itemgetter(1,0))

>>> L

>>>[('c', 2), ('d', 2), ('b', 3), ('a', 4)]

python 怎么让列表里的数从大到小排列,python中如何给列表排序相关推荐

  1. python 怎么让列表里的数从大到小排列_Python实现把列表里的数字按从小到大的顺序排列...

    一.自己造轮子 第一种方式的思路: 拿出列表里的第0个元素,把它赋给一个叫做"最小值"的变量,然后用这个变量去跟后面的每个数字一一对比,如果碰到比它小的,就把那个新发现的小数字赋给 ...

  2. 【python】输出30以内的质数并输出、统计个数、以及从大到小排列。

    [python]输出30以内的质数并输出.统计个数.以及从大到小排列. 创建一个空列表 first_list = [] 寻找30以内的质数 for i in range(2, 30): for j i ...

  3. 在python中输入10个整数并求出最大值_python练习题 :用户任意输入10个整数到列表中,然后由大到小排列并输出。...

    一:填空题: 1.python是一种面向_对象 __的高级语言. 2.python可以在多种平台运行,这体现了python的___可移植___特性. 3.python源代码被解释器转换后的格式为___ ...

  4. 真心话大冒险小程序python实现

    ** 真心话大冒险小程序python实现 想必各位学习了Python基础的同学,都想做一个小程序来玩玩吧,如何通过Python来实现小程序的制作呢? 首先我们要先了解 tkinter 拓展库 tkin ...

  5. c语言自动输入0到1000,c语言实现输入一组数自动从大到小排列

    #include main() { int x; printf("请输入要排序数字个数:"); scanf("%d",&x); int i,j,k,a, ...

  6. php 从大到小显示,vue.js,javascript_Vue 在列表渲染的时候,能排序显示么。 比如按价格从大到小排序,vue.js,javascript - phpStudy...

    Vue 在列表渲染的时候,能排序显示么. 比如按价格从大到小排序 // json { "data": [ { "name": "山鹰登山社" ...

  7. python如何创建函数对列表里的元素进行分类_zip()函数如何在python中遍历多个列表?...

    在对列表的元素进行找寻时,会频繁的说到遍历的理念.对于复杂的遍历要求,如多个列表中查找就显然不适合用for循环.本篇所要带来的是zip() 函数的方法,能够对多个迭代器进行遍历.下面我们就python ...

  8. python如何将数组里的数提取出来_python [:3] 实现提取数组中的数

    搜索答案搜索不到,自己试了一把. 首先生成一维数组 a =np.array([1,2,3,4,5,6,7,8,9]) >>> print a [1 2 3 4 5 6 7 8 9] ...

  9. python的return语句求两数之和_程序题(python解)

    PyCharm整理代码:Ctrl+Alt+l list行数:len(list) list列数:len(list[1]) 笔试常使用到的功能: 1.单独取出一长串字符中每个单独的字符: 输入'abcd' ...

最新文章

  1. SpringBoot自定义错误页面
  2. python3.8 新特性
  3. CentOS通过日志反查入侵(转)
  4. SDE+ORACLE优化配置
  5. N划分成若干个奇正整数之和的分法有多少种---动态规划
  6. [转载] python string 字符串转换为字典 dict
  7. 关于xcode中的代码比较工具
  8. Ubuntu配置Wine教程
  9. deeping操作系统修改已挂载卷名称
  10. 【最全攻略】拼多多商家自研系统接入流程
  11. 电子通讯录(自存储)
  12. 扫雷小游戏 纯C语言/C++开发分享成果和记录
  13. JZOJ4809. 【NOIP2016提高A组五校联考1】挖金矿
  14. Android开发_ARN是什么
  15. 解释相机中的弥散现象
  16. 电子学报 计算机科学,电子学报
  17. 计算机网络之面试常考--整理来自牛客网
  18. 一张图说明CDN网络的原理
  19. 纳税服务系统【系统、子系统首页】
  20. 关于举办第十七届全国大学生智能汽车竞赛的通知

热门文章

  1. 微信消息防撤回,这款开源神器文字、语音、图片都支持撤回查看!
  2. 数据库三大范式(通俗理解)
  3. 全面且简单明了的蓝牙服务及UUID介绍
  4. 一些有用的资源分享(工具+电子书+GitHub最全的前端资源汇总仓库(包括前端学习、开发资源、求职面试等))
  5. 一、快速上手SpringBoot
  6. 【Prompt Engineering 教程:写 Prompt 的艺术】1、什么是 Prompt Engineering?
  7. python猜数字小游戏你真的会吗?
  8. 9E技术员家园注册码;a266
  9. Excel中单元格格式对应POI 单元格类型 CellType
  10. cf16-1代码什么意思_CF中的代码重用-第一部分