1. ホーム
  2. python

[解決済み] ソートされたリストのインデックスを返すには?重複

2022-04-25 08:11:36

質問

リストをソートして、リスト内のソート済みアイテムのインデックスを持つリストを返す必要があります。たとえば、並べ替えたいリストが [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

私の具体的なニーズは、オブジェクトのプロパティに基づいて、オブジェクトのリストを並べ替えることです。そして、新たにソートされたリストの順序に一致するように、対応するリストを再順序付けする必要があります。

何か良い方法はないでしょうか?

どのように解決するのですか?

Pythonのソート関数の key パラメータを使用してインデックス配列をソートします。

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