python List排序问题

2026年全国青少年信息素养大赛算法应用主题赛(C++赛项初赛模拟卷1及答案解析) 阅读详情

原文地址:http://nemogu.iteye.com/blog/1493641

对List进行排序,Python提供了两个方法

 

---sort----
方法1.用List的内建函数list.sort进行排序

list.sort(func=None, key=None, reverse=False) 
方法2.用序列类型函数sorted(list)进行排序

sorted(list)返回一个对象,可以用作表达式。原来的list不变,生成一个新的排好序的list对象。

list.sort() 不会返回对象,改变原有的list。

实例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',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: 对第二个关键字排序 
>>>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: 对第二个关键字排序 
>>>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)]
为什么实例8能够工作呢?原因在于tuple是的比较从左到右比较的,比较完第一个,如果
相等,比较第二个


数字IC行业笔试面试全攻略 数字IC行业迎来快速发展,国产替代加速,技术创新活跃,应用领域持续扩展,但人才缺口扩大。职业发展路径清晰,从初级到首席工程师/架构师的技术路线,或转向管理岗位。薪资待遇优厚,应届生起薪25-35W,5-10年经验可达70-110W,架构师年薪超百万。薪资受公司平台、技术方向、学历背景、项目经验和地域因素影响。AI芯片、汽车电子等热门方向溢价明显,成功流片经验尤其重要。 阅读详情

相关推荐

手把手教你用Matlab/Simulink搭建PMSM的SMO无感FOC仿真(附相位补偿与离散化代码)

本文详细介绍了基于滑模观测器(SMO)的永磁同步电机(PMSM)无传感器FOC控制方法,通过Matlab/Simulink平台实现从理论到实践的完整流程。内容涵盖SMO核心原理、离散化处理、转子位置估算与相位补偿技术,以及双闭环控制系统搭建,为工程师提供了一套完整的无传感器控制解决方案。

weixin_27038245的博客 253

java中List的排序问题

在完成软件构造lab3时,实现MultiInterSet类需要对每一个标签对应的时间段列表进行从小到大的排序: 即已有一个Interval类,每一个Interval对应一个时间段[a, b]。在MultiIntervalSet类中声明一个时间段的列表List< Interval > l = new ArrayList<>();然后对 l 中的每个时间段,按照其起始时间的升序进行排列,如排序前该列表为 [20, 35], [10, 25],[0, 30],排序后应为 [0, 30],

qq_47582681的博客 446

整车 EOL下线 测试系统介绍

整车下线(EOL)测试专门针对整车进行设计开发,是车企将组装好的整车交付客户前的 最后一道检测工序。EOL 测试针对的是整车下线测试,不同于零部件下线,是整车级别的下线 测试,测试过程关系整车的每个零部件,其测试质量直接影响到整车的质量好坏。因此,整车EOL测试是整车下线必不可少的测试过程.

王小奎的博客 5485

list通过过stream使用sort进行升降排序

基于jdk1.8 .stream().sorted.....collect():返回新的有序集合,原集合顺序不变 .sort...:返回void,原集合顺序变为有序 Subject subject1 = new Subject("语文", 91.0); Subject subject2 = new Subject("语文", 94.0); Subject ...

Osborn的博客 9606

EPLAN Electric P8 2025安装避坑指南:硬件、.NET 6与VM配置全解析

EPLAN Electric P8 是面向工业自动化电气设计的工程级CAD平台,其核心依赖于.NET运行时、DirectX硬件加速与本地许可证验证机制。随着2025版升级至.NET 6.0 Runtime、DirectX 12渲染引擎及双模授权校验,安装失败率显著上升——尤其在显卡驱动陈旧、虚拟机环境或企业离线场景下。技术价值在于保障PLC柜体布局、端子排自动生成、电缆清册输出等产线级功能稳定运行;典型应用场景包括高校电赛控制系统设计、包装线电控图纸交付及集成商多版本协同部署。本文聚焦EPLAN 2025安

weixin_30897079的博客 555

Qt 6.5实战:用QMediaPlayer搞定RTSP监控流播放(附LAV Filters解码器避坑指南)

本文详细介绍了如何在Qt 6.5中使用QMediaPlayer实现低延迟RTSP监控流播放,并提供了LAV Filters解码器的配置避坑指南。通过优化缓冲策略和硬件加速设置,显著提升视频流的播放性能和稳定性,适用于工业视觉检测和安防监控等实时场景。

weixin_33712987的博客 399

List 将重复数据排到一起,不按hashCode排序

List 将重复数据排到一起,按原有List默认排序,不按hashCode排序 public static void main(String[] args) { List<Integer> list = Arrays.asList(2, 3, 4, 1, 1, 2, 1); Map<Integer, List<Integer>> map = list.stream().collect(Collectors.groupingBy(Fu

追逐丿的专栏 491

手把手教你学Simulink——基于智能电网与AI融合的场景实例:强化学习在并网逆变器控制中的应用

本文介绍了如何利用Simulink和强化学习工具包实现并网逆变器的智能控制。针对传统PI控制方法的局限性,提出采用强化学习(RL)构建自适应控制系统。通过详细步骤展示了从建立主电路模型、设计强化学习环境、选择训练智能体(如PPO算法)到仿真对比测试的全过程。实验结果表明,RL控制器在动态响应、THD指标和参数鲁棒性等方面优于传统PI控制器,突显了数据驱动控制在复杂电力系统中的优势。文章还探讨了该技术在微电网协同控制、在线学习等场景的拓展应用,为智能电网控制提供了新思路。

MHD0815的博客 336

list实现根据某一个字段排序

对于Java针对于数组和List的排序的实现都已经封装好了方法,我们只需要调用方法就可以。 针对于数组只需要使用Arrays.sort就可以实现,本文主要讨论在list的情况下就行排序,实际开发中可能需要把list的试题集合根据某一个字段排序,下面就来介绍list的排序。 1.要想实现排序首先要确保list里面的元素是相同数据类型。 以下演示有一个ExamStudentAddress实体,按照实体...

weixin_43564923的博客 3万+

第39步 深度学习图像识别:Inception V3建模(Tensorflow)

第39步 深度学习图像识别:Inception V3建模(Tensorflow)

Jet4505的博客 3168

什么是 PD 电压诱骗?

电压诱骗” 的意思就是,使用某些方法让 PD 充电器误以为设备需要更高的电压,从而让充电器提供比实际需要更高的电压。手机可能只需要 5V,但笔记本电脑可能需要 20V,通过 PD 协议,充电器能够根据设备的需求输出合适的电压和电流。在“电压诱骗”的情况下,你通过某种手段让充电器以为设备需要 12V,于是充电器会按照这个伪造的请求输出 12V,而不是默认的 5V。充电器评估自己的能力,如果可以提供设备需要的电压和电流,它会调整输出电压,从默认的 5V 切换到设备请求的电压(如 12V)。

qq_45430571的博客 2657

python list排序(正倒)以及获取重复数据

mylist = [2,2,2,2,5,5,7,2,2,3,3,3,3] #<class 'list'>: [2, 2, 2, 2, 5, 5, 7, 2, 2, 3, 3, 3, 3] mylist.sort() # <class 'list'>: [2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 5, 5, 7] mylist...

weixin_34290352的博客 253

fanuc机器人I/O分配

FANUC机器人在和其他外部设备进行通讯时,需要对信号进行配置。 在机器人处于UOP自动分配状态时,系统会自动检索已配对设备,并分配相应的机架号。 当我们需要手动对信号进行分配时,可参考以下机架号进行配置。 不同的通讯协议对应的机架号不同,外部通讯协议常用的机架号参考下表: 序号 机架号 通讯类型 1 0 Process I/O 2 1-15

haier123888的博客 1万+

python list 排序问题

对List进行排序,Python提供了两个方法 ---sort---- 方法1.用List的内建函数list.sort进行排序 list.sort(func=None, key=None, reverse=False)  方法2.用序列类型函数sorted(list)进行排序 >>> list = [2,5,1] >>> list [2, 5, 1] >>> so

justforfun 7717

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python中list排序问题

用python实现list的排序方法 1、list列表排序 方法1.用list的内建函数list.sort进行排序 list.sort(func=None,key=None,reverse=False) 方法2.用序列类型函数sorted(list)进行排序 &gt;&gt;&gt;list = [5,3,9,1] &gt;&gt;&gt;list [5,3,9,1] &gt;&gt;...

tituszm 8508

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

python List 排序问题

list.sort()方法. List2=[3,7,8,6] #由低到高 List2.sort() List2 Out[17]: [3, 6, 7, 8] #由高到低 List2.sort(reverse=True) List2 Out[19]: [8, 7, 6, 3] 二维列表指定列排序: List1=[[1,3.9],[0,7.6],[3,5.4]] 默认第一列: ...

weixin_39405468的博客 210

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

解决[PYTHON]:list转换为set的时候会自动排序的问题

product_names = Report_Details.objects.all().values('Product__productname').order_by('Product') tasknames = Report_Details.objects.all().values('taskname').order_by('Product') products = Report_Details.objects.all().values('Product').order_by(...

Allen . Liu 3741

python 中的list.sort和 sorted排序问题

#列表中的字典排序 data=[{'a':1,'b':2},{'a':10,'b':2},{'a':1.6,'b':2}] data1=sorted(data, key=lambda d: d['a'], reverse=True) print(data) print(data1) #列表中的对象排序 class People: age=0 gender='male' d...

yournevermore的博客 395

python将list转化为set_解决[PYTHON]:list转换为set的时候会自动排序的问题

product_names = Report_Details.objects.all().values('Product__productname').order_by('Product')tasknames = Report_Details.objects.all().values('taskname').order_by('Product')products = Report_Details....

weixin_39935654的博客 1251

python-list列表排序问题 sort 与 sorted

sort 与 sorted 区别: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。 list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。 sorted(listA, key=lambda x:x[1]) 返回一个新的列表 list.sort(func=None, key=None, reverse=False) 在原有的列表上修改 sort app_list.

qq_38959934的博客 404

Python os.list(para)排序问题

os.list()函数通常用于获取某一路径下的所有文件列表,实质上返回的是一个list,我们会发现,list里文件的顺序与windows文件系统中排列顺序不一致,这种时候需要对lsit按照我们的需求进行排序。 按照数字顺序排序(1,2,3,4,5....): subfile_list = os.listdir(file_path) subfile_list.sort(key=lam...

PMPWDF的博客 911

python list map成员排序_python 3.6 list(map())问题

map(lambda x: [ret_ttest.loc[x][0], ret_ttest.loc[x][1]], ret_ttest.index)结果:list(map(lambda x: [ret_ttest.loc[x][0], ret_ttest.loc[x][1]], ret_ttest.index))报错:----------------------------------------...

weixin_35172715的博客 278

python coding bat list 2_python实战系列之ip地址排序问题(二)

1. 背景说明从openstack的nova list中获取了虚拟机的ip地址,但这些ip都没有排序和分组,为了进一步增强可读性,对ip地址执行排序操作,在shell下,可以通过sort命令,执行排序操作,具体操作如下:[root@controller~]#catip.txt|sort-t"."-k1,1n-k2,2n-k3,3n-k4,4n10.1.104.7510.1.1...

weixin_39957934的博客 263

python list map成员排序_[求助] Java8 Stream中 List<Map<String,Object>> 多字段组合排序问题...

题主既然按照说是Java8的方式来排序,那就给一个按照java8的方式进行排序的代码吧,大体如下public class Test {public static void main(String[] args) {Map map = new HashMap();map.put("name", "ZK");map.put("age", 13);Map map2 = new HashMap();map...

weixin_39900582的博客 766

python 数字大小排序_python list字符按数字大小排序

python list字符按数字大小排序在把list写到csv过程中,遇到一个list的排序问题,list中存放的是数字字符,需要按数字大小来排序测试源码testList = ['1', '5', '2', '10', '50', '21', '31', '3', '7']print('testList={}'.format(testList))normalSortList = testList[...

weixin_39948309的博客 1978

python打乱列表的方法解决问题_Python 如何随机打乱列表(List)排序

场景:现在有一个list:[1,2,3,4,5,6],我需要把这个list在输出的时候,是以一种随机打乱的形式输出。专业点的术语:将一个容器中的数据每次随机逐个遍历一遍。注意:不是生成一个随机的list集。环境:Python 3.6解决方案:方案一:有人可能会通过Random内置函数,来间接实现想要的结果。但是这种方式,太原始,也不够优雅,而且有种重复造轮子的嫌疑。这里我就不贴我自己通过rando...

weixin_39637397的博客 198
上一篇: PDB调试python
下一篇: 粒子群算法认识
WayToAccept
博客等级 码龄14年 21粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值