Pythonで辞書をキーと値でソートする方法
みなさん、こんにちは!PhotoShopでは、PhotoShopを利用する際の注意点をご紹介します。 今日はPython(Python3)の辞書ソートについて簡単にTipsを紹介します。 ご存知のように、辞書は本質的に無秩序ですが、リストやタプルのような他の型はそうではありません。 辞書をソートすることはできませんが、ソートされた辞書の表現を作ることはできます。 したがって、ソートされたキーや値を表現するためには、順序付けられたデータ型が必要です。
最初の図にあるように、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: 機械学習のための特徴エンジニアリング