ソートされたリストのインデックスを返す方法は? [重複] 質問する

ソートされたリストのインデックスを返す方法は? [重複] 質問する

リストをソートし、リスト内のソートされた項目のインデックスを含むリストを返す必要があります。たとえば、ソートしたいリストが の場合[2,3,1,4,5]、 が[2,0,1,3,4]返される必要があります。

この質問は bytes に投稿されましたが、ここで再投稿しようと思いました。http://bytes.com/topic/python/answers/44513-sorting-list-then-return-index-sorted-item

オブジェクトのプロパティに基づいてオブジェクトのリストを並べ替えるという具体的なニーズがあります。次に、新しく並べ替えたリストの順序に合わせて、対応するリストの順序を変更する必要があります。

これを行う良い方法はありますか?

ベストアンサー1

代わりに、Python ソート関数のkeyパラメータを使用してインデックス配列をソートすることもできます。

>>> s = [2, 3, 1, 4, 5, 3]
>>> sorted(range(len(s)), key=lambda k: s[k])
[2, 0, 1, 5, 3, 4]
>>> 

おすすめ記事