Pythonの配列をソートしてインデックスを返すにはどうしたらよいですか
sorted()関数で配列をソートし、enumerate()関数で各要素のインデックスを取得します。これにより、ソートされた要素のリストと対応するインデックスのリストが得られます。
以下是一個例子:
arr = [5, 2, 7, 1, 9]
sorted_arr = sorted(enumerate(arr), key=lambda x: x[1])
sorted_indices = [index for index, _ in sorted_arr]
print(sorted_indices) # 输出: [3, 1, 0, 2, 4]
この例では、sorted()関数は配列arrの値で配列をソートし、各タプルに要素のインデックスと対応する値を含むタプルのリストを返します。次に、key=lambda x: x[1]を使用して、ソートの基準がタプル内の2番目の要素(値)であることを指定します。最後に、enumerate()関数を使用してソートされた要素のリストを取得し、リスト内包を使用して[index for index, _ in sorted_arr]ソートされたインデックスのリストを取り出します。