PYTHON MEBY

Pythonで辞書をソート(sorted)

この記事では、Pythonで辞書をソートする方法について解説します。items()メソッド、sorted()関数、キーによるソート、値によるソート、ラムダ式を使ったソートなど、様々な方法を例を用いて説明します。

目次

items()メソッドによるソート

辞書のitems()メソッドは、キーと値のペアをタプルとして持つリストを返します。このリストをsorted()関数でソートすることで、辞書をソートできます。ソート順はキーの昇順になります。

my_dict = {'apple': 3, 'banana': 1, 'cherry': 2}
sorted_dict = dict(sorted(my_dict.items()))
print(sorted_dict)

出力:{'apple': 3, 'banana': 1, 'cherry': 2}。キーの昇順にソートされています。

sorted()関数によるソート

sorted()関数は、イテラブルオブジェクト(リスト、タプルなど)をソートした新しいリストを返します。items()メソッドと組み合わせることで、辞書をソートできます。

my_dict = {'apple': 3, 'banana': 1, 'cherry': 2}
sorted_items = sorted(my_dict.items())
print(sorted_items)
sorted_dict = dict(sorted_items)
print(sorted_dict)

出力: [('apple', 3), ('banana', 1), ('cherry', 2)] {'apple': 3, 'banana': 1, 'cherry': 2}。キーの昇順にソートされています。

キーによるソート

sorted()関数のkey引数に、キーを指定することで、キーに基づいてソートできます。

my_dict = {'apple': 3, 'banana': 1, 'cherry': 2}
sorted_dict = dict(sorted(my_dict.items(), key=lambda item: item[0]))
print(sorted_dict)

出力:{'apple': 3, 'banana': 1, 'cherry': 2}。キーの昇順にソートされています。

値によるソート

sorted()関数のkey引数に、値を指定することで、値に基づいてソートできます。

my_dict = {'apple': 3, 'banana': 1, 'cherry': 2}
sorted_dict = dict(sorted(my_dict.items(), key=lambda item: item[1]))
print(sorted_dict)

出力:{'banana': 1, 'cherry': 2, 'apple': 3}。値の昇順にソートされています。

ラムダ式を使ったソート

ラムダ式を使うことで、より複雑なソート条件を指定できます。例えば、キーの長さ順にソートする例を示します。

my_dict = {'apple': 3, 'banana': 1, 'cherry': 2}
sorted_dict = dict(sorted(my_dict.items(), key=lambda item: len(item[0])))
print(sorted_dict)

出力:{'apple': 3, 'cherry': 2, 'banana': 1}。キーの長さの昇順にソートされています。

関連記事