python列表排序方法-python list排序的两种方法及实例讲解
对List进行排序,Python提供了两个方法
方法1.用List的内建函数list.sort进行排序
list.sort(func=None, key=None, reverse=False)
Python实例:
1
2
3
4
5
6
>>>list = [2,5,8,9,3]
>>>list
[2,5,8,9,3]
>>>list.sort()
>>>list
[2,3,5,8,9]
方法2.用序列类型函数sorted(list)进行排序(从2.4开始)
Python实例:
1
2
3
4
5
>>>list = [2,5,8,9,3]
>>>list
[2,5,8,9,3]
>>>sorted(list)
[2,3,5,8,9]
两种方法的区别:
sorted(list)返回一个对象,可以用作表达式。原来的list不变,生成一个新的排好序的list对象。
list.sort() 不会返回对象,改变原有的list。
其他sort的实例:
实例1:正向排序
1
2
3
4
>>>L= [2,3,1,4]
>>>L.sort()
>>>L
>>>[1,2,3,4]
实例2:反向排序
1
2
3
4
>>>L= [2,3,1,4]
>>>L.sort(reverse=True)
>>>L
>>>[4,3,2,1]
实例3:对第二个关键字排序
1
2
3
4
>>>L= [("b",6),("a",1),("c",3),("d",4)]
>>>L.sort(lambda x,y:cmp(x[1],y[1]))
>>>L
>>>[("a",1), ("c",3), ("d",4), ("b",6)]
实例4: 对第二个关键字排序
1
2
3
4
>>>L= [("b",6),("a",1),("c",3),("d",4)]
>>>L.sort(key=lambda x:x[1])
>>>L
>>>[("a",1), ("c",3), ("d",4), ("b",6)]
实例5: 对第二个关键字排序
1
2
3
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)
1
2
3
4
5
6
>>>L= [("b",2),("a",1),("c",3),("d",4)]
>>>A= [(x[1],i,x)for i,xin enumerate(L)]#i can confirm the stable sort
>>>A.sort()
>>>L= [s[2]for sin 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:
1
2
3
4
>>>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:
1
2
3
4
>>> 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:
1
2
3
4
>>> 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)]
为什么实例8能够工作呢?原因在于tuple是的比较从左到右比较的,比较完第一个,如果相等,比较第二个
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持服务器之家!
原文链接:http://blog.chinaunix.net/uid-20775448-id-4222915.html
python列表排序方法-python list排序的两种方法及实例讲解相关推荐
- python去重复排序_Python实现删除排序数组中重复项的两种方法示例
本文实例讲述了Python实现删除排序数组中重复项的两种方法.分享给大家供大家参考,具体如下: 对于给定的有序数组nums,移除数组中存在的重复数字,确保每个数字只出现一次并返回新数组的长度 注意:不 ...
- Python计算程序运行时间秒级/毫秒级的两种方法datetime和time
Python计算程序运行时间秒级/毫秒级的两种方法datetime和time 简单粗暴,先上代码: import datetime import time# 方法一:datetime.datetime ...
- 第四周作业——统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和sed两种方法分别实现)
统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和sed两种方法分别实现) 方法一:grep实现 grep -o "\<[[:alpha:]] ...
- dede列表页if判断输出html,首页、列表页调用文章body内容的两种方法
随着源码的开放性,很多SEOER对页面的要求也越来越复杂多样性,很多时候,织梦系统的原有功能并不能满足seoer的页面布置要求,这就需要继续开发页面,做更多的功能调用. 今天徐金华SEO给大家讲的是关 ...
- 织梦首页、列表页调用文章body内容的两种方法
关于首页.列表页调用文章body内容的两种方法,具体方法如下: 第一种方法: {dede:arclist row='1' typeid='1' addfields='body' idlist='1' ...
- python字符串成熟编码_python字符串转公式两种方法获取网页编码python版
在web开发的时候我们经常会遇到网页抓取和分析,各种语言都可以完成这个功能.我喜欢用python实现,因为python提供了很多成熟的模块,可以很方便的实现网页抓取. 但是在抓取过程中会遇到编码的问题 ...
- python安装gdal包_python安装gdal的两种方法
1.不用手动下载文件,直接执行以下命令即可 conda install gdal 2.首先,下载gdal的whl文件 链接, 官网下载比较慢,GDAL-2.2.4-cp27-cp27m-win_am ...
- python向上取整的方法_python 取整的两种方法,python向上取整的方法,问题简介: 要把一...
python 取整的两种方法,python向上取整的方法,问题简介: 要把一 问题简介: 要把一个浮点数(float)整数部分提取出来.比如把"2.1"变成"2" ...
- python stdout_详解使用python的logging模块在stdout输出的两种方法
详解使用python的logging模块在stdout输出 前言: 使用python的logging模块时,除了想将日志记录在文件中外,还希望在前台执行python脚本时,可以将日志直接输出到标准输出 ...
- python删除空文件和文件夹_python 两种方法删除空文件夹
第一种方法: import os def delete_gap_dir(dir): if os.path.isdir(dir): for d in os.listdir(dir): #print(&q ...
最新文章
- 漫画:设计模式之 “外观模式”
- php 服务器运行状态,检查服务器各种服务的运行状态
- Android-源代码分析
- 网易考拉没有了,网易严选还会远吗?
- 游戏型计算机的配置表,爽玩游戏型详细配置列表及推荐理由
- 使用dotnet template快速开发Microsoft Teams Outgoing Web Hook
- 计算机网络技术之城域网与三网融合技术
- 定义水果和方法的java代码_命名水果的两列上的自定义聚合
- JAVA多线程--线程阻塞与唤醒
- [导入]MsAjax Lib- Date.format 函数
- pytorch学习笔记(三十):RNN反向传播计算图公式推导
- Sublime配置java运行环境
- luogu1850 [NOIp2016]换教室 (floyd+dp)
- Delphi LiveBinds组件
- python3编译器不同版本差别大吗_python3.9的转义符使用和其他版本不一样吗?
- RFID将成为物联网革命的首战
- layoutIfNeeded 就这样把我害惨
- Atitit 业务流程执行引擎的实现 目录 1.1. 引擎实现语言java js php等	1 1.2. 流程语言 xml sql js等 业务流程定义语言规范总结	1 1.3. 实体方法定义	2
- 粒子群算法的惩罚函数的c语言实现,粒子群算法结合惩罚函数用于桥式起重机主梁优化.pdf...
- 如何在2015年后的MacBook Air上安装双系统