ホームページ > バックエンド開発 > Python チュートリアル > キーが一致する Python 辞書を値のタプルに効率的にマージするにはどうすればよいですか?

キーが一致する Python 辞書を値のタプルに効率的にマージするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-22 14:25:17
オリジナル
952 人が閲覧しました

How Can I Efficiently Merge Python Dictionaries with Matching Keys into Tuples of Values?

一致するキーによる辞書の結合: チュートリアル

Python では、一致するキーに関連付けられた値を組み合わせて辞書を結合するのが一般的なタスクです。この目標を効率的に達成する方法を検討してみましょう。

問題ステートメント

次のようなキーと値のペアを持つ複数の辞書が与えられているとします。

d1 = {key1: x1, key2: y1}
d2 = {key1: x2, key2: y2}
ログイン後にコピー

目的は、各キーが入力辞書からの対応する値のタプルを持つ新しい辞書を作成することです。たとえば、望ましい結果は次のようになります。

d = {key1: (x1, x2), key2: (y1, y2)}
ログイン後にコピー

解決策:defaultdict を利用する

一致するキーから値を収集しながら辞書をマージする効率的なアプローチの 1 つは、コレクションモジュールのdefaultdictクラス。以下に段階的なデモを示します。

  1. defaultdict オブジェクトを定義します。これにより、不足しているキーのリストが自動的に作成されます。
  2. 入力辞書を反復処理します。
  3. の場合各ディクショナリのキーと値のペアごとに、そのキーに関連付けられたリストに値を追加します。 defaultdict.
  4. 結果のdefaultdictには、すべての入力辞書からの元のキーを表すキーと、対応する値を含むリストとしての値が含まれます。

コード実装

from collections import defaultdict

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

dd = defaultdict(list)

for d in (d1, d2):
    for key, value in d.items():
        dd[key].append(value)

print(dd)  # defaultdict(<type 'list'>, {1: [2, 6], 3: [4, 7]})
ログイン後にコピー

これらの手順に従うことで、一致するキーを持つ辞書を効果的に結合し、それらに関連付けられた値を組み合わせることができます新しい辞書に。

以上がキーが一致する Python 辞書を値のタプルに効率的にマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート