Pythonのdict型をソートすると返り値がlist型になってしまう問題について

2019年11月16日

今回はPythonのdict型をソートすると返り値がlist型になってしまう問題について、どう対処すべきかについてご紹介いたします。

動作確認しているのはPython3です。



Pythonのdict型をソートすると返り値がlist型になってしまう問題について

例として、次のようなプログラムがあったとします。

最初にdict型のnum_engを定義してsortを行い、sorted_num_engにソートした結果を格納しています。

こちらのプログラムの実行結果は次のようになります。

出力結果から分かる通り、dict型のオブジェクトをソートしようとするとlist型で返ってきてしまうのが分かりますね。

単にlist型の返り値を次のようにdictで囲ってしまうとうまくいかない時があります。(なぜか私の環境では再現できませんでした。ひとまず上手くいかないときがあります。バージョンの違い?)

そんなときの対処法として、OrderedDictを使うという方法があります。
OrderedDictは順序を保持するdictです。
通常のdict型のオブジェクトでは順序は保持できませんが、OrderedDictを使用することで順序を保持したままdictを扱うことができます。

実行結果は次の通りです。

終わりに

今回はPythonのdict型をソートすると返り値がlist型になってしまう問題についての対処法についてご紹介いたしました。

最後までお読みいただきありがとうございます。
よろしければブログやTwitterでのシェアをお願いいたします。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。






Python

Posted by ちこ