Python列表排序并得到原来对应的下标

例如a = [5,6,3,8]

排序结果应为[3,5,6,8],对应下标为[2,0,1,3]

思想:建立和下表对应的元祖,排序时按对应值排序即可

方法一、

x = [5,6,3,8]
b = sorted(zip(x, range(len(x))))
b.sort(key = lambda x : x[0])  # x[0]是因为在元组中,按a排序,a在第0位,这里的x不是前面的数组x,只是临时申请的变量
c = [x[1] for x in b]  # x[1]是因为在元组中,下标在第1位

方法二、(写着简单点)

x = [5,6,3,8]
b = sorted(enumerate(x), key=lambda x:x[1])  # x[1]是因为在enumerate(a)中,a数值在第1位
c = [x[0] for x in b]  # 获取排序好后b坐标,下标在第0位
posted @   小Aer  阅读(111)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示