ページへ戻る
− Links
印刷
Python/ソート
の編集 ::
NJF Wiki
xpwiki
:
Python
/
ソート
の編集
# i4a2c52d の編集
ページ内容:
**キーでソートするならリストにしない方が良い [#i4a2c52d] ところで、ネット上でPythonの辞書型オブジェクトのソートを検索すると、なぜか以下のような一度リストになおしてからソートする例が多く出てきます。 sorted_dict_list = sorted(original_dict.items()) print(sorted_dict_list) 結果 [(1, 'A'), (2, 'B'), (3, 'C'), (4, 'D')] このやり方はあまりよくありません。 なぜなら、もとの辞書型オブジェクトの中と並べ替えたリストの中に同じ値が含まれており、データが二重化してしまうからです。 この方法では、メモリを無駄に消費するのはもちろん、ソートしてからキーに対応した値を変更しようとすると、プログラムの目的によっては、値の整合性をとるために並び替えたリスト(sorted_dict_list)と、もとの辞書型オブジェクト(original_dict)の値の両方を変更しなければならなくなります。 しかもリストの方は中がタプルのため値が変更できません。 そのため、もとの辞書型オブジェクトの値を変更した上で、キーでもう一度並べ替えをやりなおすか、タプルをリストに変換してキーを検索して値を変更する、といった処理が必要となります。 並べ替えたキーだけ保持する方法なら、もとの辞書型オブジェクトを変更するだけで良く、そのような処理は必要ありません。 ちなみに、一度リスト化して並べ替える方法がGoogle検索の上位に現れるのは日本語のサイトの検索結果です。英語のサイトの検索結果の上位サイトだとわざわざそんなことはしていません(2019年4月)。日本ローカルの謎の処理のようです。
編集の要約:
Q & A 認証:
ページ更新時は次の質問にお答えください。(プレビュー時は必要ありません)
Q:
「京都」の読みがな?(ひらがなで)
A:
お名前:
タイムスタンプを変更しない
テキスト整形のルールを表示する
[1]
Links list
(This host) = https://njf.jp
(This host)
/cms/modules/xpwiki/?cmd=edit&help=true&page=Python%2F%E3%82%BD%E3%83%BC%E3%83%88