重複するキーを含む複数の辞書を操作する場合、それらのキーに関連付けられた値を収集しながらそれらを効率的に結合する必要があります。この記事では、辞書のコレクション内の一致するキーから値を結合して収集するソリューションを検討します。
次のような複数の辞書があるとします。
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 サイトの他の関連記事を参照してください。