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

重複キーを持つディクショナリを効率的にマージし、その値を収集するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-24 15:29:12783ブラウズ

How Can I Efficiently Merge Dictionaries with Duplicate Keys and Collect Their Values?

重複キーの辞書のマージ

重複するキーを含む複数の辞書を操作する場合、それらのキーに関連付けられた値を収集しながらそれらを効率的に結合する必要があります。この記事では、辞書のコレクション内の一致するキーから値を結合して収集するソリューションを検討します。

問題ステートメント

次のような複数の辞書があるとします。

d1 = {key1: x1, key2: y1}
d2 = {key1: x2, key2: y2}

目標は次のとおりです。マージされた結果を新しい辞書として取得します。各キーには、元の辞書の値のタプルが保持されます。 dictionaries:

d = {key1: (x1, x2), key2: (y1, y2)}

ソリューション

このソリューションでは、collections.defaultdict を利用して、デフォルト値を可変リストとして持つ辞書を作成します。これにより、各キーの値の累積が可能になります。

from collections import defaultdict

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

dd = defaultdict(list)

for d in (d1, d2): # Input dictionaries can be iterated over here
    for key, value in d.items():
        dd[key].append(value)

最終的にマージされた辞書 dd には、入力辞書の値のリストにマップされた各キーが含まれます。

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

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