Pythonで辞書をキーと値でソートする方法

2020/4/2 – 4 min read

みなさん、こんにちは!PhotoShopでは、PhotoShopを利用する際の注意点をご紹介します。 今日はPython(Python3)の辞書ソートについて簡単にTipsを紹介します。 ご存知のように、辞書は本質的に無秩序ですが、リストやタプルのような他の型はそうではありません。 辞書をソートすることはできませんが、ソートされた辞書の表現を作ることはできます。 したがって、ソートされたキーや値を表現するためには、順序付けられたデータ型が必要です。

Dictionary in Python (Source)

辞書のソート処理

最初の図にあるように、Python の辞書はキーとのペアがあり、それぞれのキーと値のペアをアイテムと呼びます。 さて、本題に入りましょう。 辞書はキーや値でソートすることができる。 2番目の図にあるように、辞書のkeys()values()items()をソートすることができます。 5690>

辞書を値で並べ替える

有名な組織をkeys()、その設立年をvalues()とする辞書があるとする。

d = {"Apple": 1976, "Microsoft":1975, "Facebook":2004, "Sony":1946, "IBM":1911, "Amazon": 1994 }

辞書dを見るとわかるように、IBMは最も古い組織なので、ソートされた辞書の最初のキーとなり、Facebookは最後のキーになります。

print(sorted(d.items(), key = lambda kv:kv))
print(sorted(d.items(), key = lambda kv:kv, reverse = True))
print(dict(sorted(d.items(), key = lambda kv:kv)))
sort_d = dict(sorted(d.items(), key = lambda kv:kv))
print(sort_d)

出力:



{'IBM': 1911, 'Sony': 1946, 'Microsoft': 1975, 'Apple': 1976, 'Amazon': 1994, 'Facebook': 2004}
{'IBM': 1911, 'Sony': 1946, 'Microsoft': 1975, 'Apple': 1976, 'Amazon': 1994, 'Facebook': 2004}

我々はd.items()をソートしているので、keys()は各タプルの第1パラメータ、values()は第2パラメータであるタプルのリストである。 タプルのリストをソートするために、値、すなわち各タプルの2番目のパラメータをキーとして選んでいる。 最初の行では、キーはlambda関数として定義されており、キーの値はアイテムの2番目のパラメータである。 このソートはソートされたタプルのリストを作る。3行目のコードのように、dict()関数を用いて辞書にすればよい。 また、ソートを逆にすると、コードの2行目に示すように、新しいものが最初に、最も古いものが最後の項目となるタプルのリストが作成されます。

sorting dictionary by key

print(sorted(d.items()))
print(dict(sorted(d.items())))
print(dict(sorted(d.items(), key = lambda kv:kv)))
print(sorted(d.items(), reverse = True))

Output:


{'Amazon': 1994, 'Apple': 1976, 'Facebook': 2004, 'IBM': 1911, 'Microsoft': 1975, 'Sony': 1946}
{'Amazon': 1994, 'Apple': 1976, 'Facebook': 2004, 'IBM': 1911, 'Microsoft': 1975, 'Sony': 1946}

ここで辞書dのkeys()は文字列であることを知っているので、キーによるソートは各項目のkeys()でアルファベット順にタプルのリストを作成し、dict()関数を使って辞書が形成されることになります。 また、lambda関数を使用してキーを定義することもできますが、これはほとんど不要なので、ソート時のキー定義で比較するために示しただけです。 機械学習やデータ解析の話をもっと知りたい方は、私のプロフィールをご覧ください。 どんな種類の提案や批評も大いに歓迎されます。 以下は、Inha University, Rep of KoreaのGraduate courseに基づく私の過去のストーリーです:

過去のストーリー:

第1部:Pythonの基礎とインストール
第2部:第2章 Pythonデータ構造 – データ型
第3部:Pythonの制御文(ループ)
第4部: Pythonの関数&モジュール
Part:5: Pythonによるオブジェクト指向プログラミング-シェーファー& DataCamp.
Part-6: 機械学習の型&手順
Part-7: 機械学習のための特徴エンジニアリング

コメントを残す

メールアドレスが公開されることはありません。