質問: strong[num[i]] elif count > strong[num[i]]: pass print(ans) ====ここまで==== 『入力データ』 ⇒ 『出力データ』 3 J 5 Q 4 [1, 2, 3] 現状のコードでは上記のようになっているのですが、 出力データを下記のようにしたいと考えております。 [1, 2, 4, 3, 5] 何を変更すればよいか、アドバイスをいただけないでしょうか。 ※コードを作成していただくのは、お時間がかかると思いますので、 また自分のプログラミング力もあがらないため、 「○○関数を使えばいい。」や「○○のように考えて作成すればいい」等の、 先輩方の考えを聞かせていただきたいです。
回答: numとstrongから数値スコアのリストを作って、numpy.argsortを使うといいかなぁ。 ``` import numpy as np scores = [...] np.argsort(scores) ``` 上記の回答はキーの重複がないことを前提にしています。 numpyのsortはデフォルトでquicksortです。これはキーが重複した際の順序に関して何も保証がありません(stableではない)。mergesortはstableのようです。もし使う場合はこの点にご注意ください。