排序列表值以获取其索引的新顺序,Python方式

van*_*exu 3 python sorting

对不起,我的问题标题含糊不清.
我的问题是,我有一个列表,a = [6, 9, 8, 10, 7, 5, 2, 3, 1, 4]
我需要获得新的顺序b = [4, 2, 3, 5, 1, 6, 10, 8, 7, 9],其中第一个元素b4因为第四个元素a 10是a中最大的数字.类似地,第二个元素b2因为a中的第二个大数是它的第二个数9

所以,希望你有我的问题:排序列表a并获得新订单b.

目前,我通过使用list.sort一些准备来完成它.

tmp = zip(range(1,11), a)
tmp.sort(key=lambda x:(-x[1],x[0]))
b = [x[0] for x in tmp]
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更好的python方式来实现我的目标?
谢谢你的任何建议〜

grc*_*grc 6

我只是使用key参数来range(1, len(a) + 1)使用a's值进行排序.

sorted(range(1, len(a) + 1), key=lambda i: a[i-1], reverse=True)
Run Code Online (Sandbox Code Playgroud)