必要な出力
「ごちゃ混ぜの」リストが与えられたl
場合、各要素が、並べ替えられたl
場合、の対応する要素のインデックスになるようなリストを返す関数が必要ですl
。(私はこれを言うより複雑でない方法を考えるのに失敗しています、ごめんなさい。)
例
f([3,1,2])
=[2,0,1]
f([3,1,2,2,3])
= [3,0,1,2,4]
、ソートされた入力は。であるため[1,2,2,3,3]
。
(これは、一部の統計計算に役立ちます。)
私の試み
私はこの関数を実行する方法を思いつきましたが、これはpythonです-これを実行するためのワンライナー、または少なくともはるかにクリーンで明確な方法が必要なようです。
def getIndiciesInSorted(l):
sortedL = sorted(l)
outputList = []
for num in l:
sortedIndex = sortedL.index(num)
outputList.append(sortedIndex)
sortedL[sortedIndex] = None
return outputList
l=[3,1,2,2,3]
print getIndiciesInSorted(l)
では、どうすればこれをより簡潔に書くことができますか?読みやすいリスト内包表記の解決策はありますか?