メインコンテンツまでスキップ

Pythonの辞書を値に基づいて複数の辞書に分割する方法

Pythonでは、辞書を値に基づいて複数の辞書に分割することができます。これは、辞書内のデータを特定の基準に基づいてグループ化したい場合に便利です。以下では、これを実現するためのステップバイステップのチュートリアルをご紹介します。

ステップ1:辞書の作成

まず、このチュートリアル全体で使用するサンプルの辞書を作成しましょう。この辞書には、キーと値のペアが含まれますが、値を分割の基準として使用します。

my_dict = {
'apple': 10,
'banana': 12,
'orange': 9,
'grape': 10,
'kiwi': 12,
'pineapple': 9
}

ステップ2:各値に対応する空の辞書を初期化する

次に、元の辞書から一意の値ごとに空の辞書を初期化する必要があります。これには、set()関数を使用して辞書から一意の値を取得します。

unique_values = set(my_dict.values())
split_dicts = {value: {} for value in unique_values}

この例では、split_dictsという辞書のキーにはmy_dictからの一意の値が、対応する値には空の辞書が入ります。

ステップ3:元の辞書を繰り返し処理する

次に、元の辞書を繰り返し処理し、各キーと値を値に基づいて適切な分割辞書に割り当てる必要があります。

for key, value in my_dict.items():
split_dicts[value][key] = value

このコードは、キーと値のペアを対応する値を持つ分割辞書に割り当てます。

ステップ4:分割辞書を表示する

最後に、結果を確認するために各分割辞書を表示できます。

for value, split_dict in split_dicts.items():
print(f"値 {value} の辞書:{split_dict}")

このコードは、各分割辞書と対応する値を個別に表示します。

完全な例

my_dict = {
'apple': 10,
'banana': 12,
'orange': 9,
'grape': 10,
'kiwi': 12,
'pineapple': 9
}

unique_values = set(my_dict.values())
split_dicts = {value: {} for value in unique_values}

for key, value in my_dict.items():
split_dicts[value][key] = value

for value, split_dict in split_dicts.items():
print(f"値 {value} の辞書:{split_dict}")

出力

上記のコードの出力は次のとおりです。

10 の辞書:{'apple': 10, 'grape': 10}
12 の辞書:{'banana': 12, 'kiwi': 12}
9 の辞書:{'orange': 9, 'pineapple': 9}

元の辞書は値に基づいて3つの別々の辞書に分割されました。各分割辞書には、元の辞書の特定の値に一致するキーと値が含まれています。

以上です!Pythonの辞書を値に基づいて複数の辞書に分割することに成功しました。