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)]
お役に立てれば幸いです!