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

Pythonでは、sorted()関数を用いて辞書をソートできます。辞書自体は無順序ですが、キーと値の組のリストに変換してからリストをソートできます。

キーボードのキーの辞書を昇順にソートする例を以下に示します:

my_dict = {'b': 2, 'a': 1, 'd': 4, 'c': 3}
sorted_dict = sorted(my_dict.items())
print(sorted_dict)

翻訳:

[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

値によるソートを行うには、キーパラメータにラムダ関数を使用してソートの基準を指定します。値で降順にソートする例を以下に示します。

my_dict = {'b': 2, 'a': 1, 'd': 4, 'c': 3}
sorted_dict = sorted(my_dict.items(), key=lambda x: x[1], reverse=True)
print(sorted_dict)

それは簡単なことだ。

[('d', 4), ('c', 3), ('b', 2), ('a', 1)]

上の例では、lambda x: x[1] は、1つの引数 x を受け取り、値である x[1] を返す匿名関数を定義しています。key 引数は sorted() 関数に、この関数の戻り値に基づいてソートするように指示し、reverse=True は降順でソートすることを示します。

itemgetter() 関数も lambda 関数と同様に使用でき、値で昇順にソートするには次のように記述できます

from operator import itemgetter
my_dict = {'b': 2, 'a': 1, 'd': 4, 'c': 3}
sorted_dict = sorted(my_dict.items(), key=itemgetter(1))
print(sorted_dict)

ネイティブな日本語で言い換えてください。ただし、1つの選択肢のみ必要です。出力:

[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

お役に立てれば幸いです!

bannerAds