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位
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix