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

Python列表排序并得到原来对应的下标,第1张

例如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位

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/715018.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存