ホームページ >バックエンド開発 >Python チュートリアル >重複キーを持つ Python ディクショナリを値のリストにマージするにはどうすればよいですか?

重複キーを持つ Python ディクショナリを値のリストにマージするにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-10 07:16:16496ブラウズ

How Can I Merge Python Dictionaries with Duplicate Keys into Lists of Values?

Python で重複キーを持つ辞書をマージする

Python では、複数の辞書を扱うのは、特に結合が必要になった場合に困難になることがあります。ディクショナリが重複キーを共有する場合に一般的な問題が発生します。その目的は、これらのキーに関連付けられたすべての値を 1 つのリストに収集することです。

解決策:defaultdict

これを効率的に処理するには、強力な Python collections モジュールのdefaultdictというツールが機能します。これにより、辞書に存在しないキーのデフォルト値 (この場合は空のリスト) を作成できます。

次の例を考えてみましょう。

d1 = {1: 2, 3: 4}
d2 = {1: 6, 3: 7}

マージするにはこれらの辞書では、一致するキーから値を収集するため、defaultdict を次のように使用できます。

from collections import defaultdict

dd = defaultdict(list)

for d in (d1, d2): # loop through all input dictionaries
    for key, value in d.items():
        dd[key].append(value)
    
print(dd) # result: defaultdict(<type 'list'>, {1: [2, 6], 3: [4, 7]})

この例ではコード:

  • defaultdict(list) を使用して空のdefaultdictを作成します。
  • 各入力辞書 d を反復処理します。
  • それぞれのキーと値のペアごとに
  • 結果は、キーがマージされたキーを表すdefaultdictになります。すべての辞書であり、値は対応するすべての値を含むリストです。

このソリューションは、複数の辞書から一致するキーに関連付けられたすべての値を効率的に収集し、重複キーを処理するクリーンで汎用性の高い方法を提供します。

以上が重複キーを持つ Python ディクショナリを値のリストにマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。