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}。キーの長さの昇順にソートされています。
関連記事
- Pythonで辞書を作成(dict, 辞書内包表記)
- Pythonで辞書に要素を追加・更新(update, 辞書[key] = value)
- Pythonで辞書のキー・値を取得(keys, values, items)
- Pythonで辞書のキーの存在を確認(in演算子, get)
- Pythonで辞書をループ処理(for key in dict, for key, value in dict.items())
- Pythonで辞書をコピー(copy, deepcopy)
- Pythonで辞書を結合(update, {**dict1, **dict2} (Python 3.5以降))
- Pythonで辞書をフィルタリング(辞書内包表記)
- Pythonで辞書をJSONに変換(json.dumps)
- PythonでJSONを辞書に変換(json.loads)