例如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位
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)