質問のタイトルがあいまいで申し訳ありません。
私の質問は、a = [6, 9, 8, 10, 7, 5, 2, 3, 1, 4]
新しい order を取得する必要があるリストがありますb = [4, 2, 3, 5, 1, 6, 10, 8, 7, 9]
。ここで、の最初の要素b
は4
、の 4 番目の要素がa
10
a の最大数であるためです。同様に、 の 2 番目の要素はb
、2
a の 2 番目に大きい数が 2 番目の数であるためです。9
それで、うまくいけば、あなたは私の質問を得たと思います: Sort the list a
and get the new order 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]
私の目標を達成するためのより良いPythonの方法があるかどうか疑問に思いますか?
提案をありがとう〜