すでにPythonのソートリスト/ディクショナリに関する質問がたくさんあることは知っていますが、私の場合に役立つものは見つけられないでしょう。私はかなり大きなデータセットをソートするつもりです。Pythonでタプルの辞書を並べ替える
a = {'a': (1, 2, 3), 'b': (3, 2, 1)}
私は基本的に私はそれ(nは、シグマ(x)は、シグマに関するいくつかの統計と一緒に各単語を格納している単語のリストを作成しています:
私のデータは、基本的には、現時点では、このようになります。 (x^2))
私はそれを特定の統計に基づいてソートしたいと思います。これまでのところ、私はの線に沿って何かをしようとしてきた:
b = a.items()
b.sort(key = itemgetter(1), reverse=True)
私はそれがタプルのタプルのその効果リストに基づいてソートされたインデックスを制御するかどうかはわかりませんか?私は効果的に2つのitemgetter操作をネストする必要があると思いますが、実際にこれを行う方法は本当にわかりません。
もっと良いデータ構造があれば、代わりに私に知らせてください。私はおそらく、小さなクラス/構造体を作成し、クラスのメンバーにアクセスするためにラムダ関数を使用する必要がありますか?
ありがとうございました
はい、完璧感謝!しかし、私はどこかで、itemgetterはラムダ関数を使うよりも速いと読んでいます。 itemgetterを使用できない場合は、この解決方法は問題ありません。 –
動作しているプログラムがあり、単体テストが完了するまで、パフォーマンスは心配しないでください。最後の*正しい*プログラムが遅すぎる場合はプロファイルし、遅いビットを最適化してください。 –
良い点:)とにかく遅い、ポインタのおかげで、私はCでそれを書き換えるかもしれません:) –