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

Python で 2 つの辞書を効率的にマージするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-22 17:24:11996ブラウズ

How Can I Efficiently Merge Two Dictionaries in Python?

Python で 2 つの辞書を 1 つの式に結合するにはどうすればよいですか?

問題:

2 つの辞書を新しい辞書にマージし、2 番目の辞書の値を 2 番目の辞書の値で上書きします。

考えられる解決策:

Python 3.9.0 以降:

z = x | y

Python 3.5 またはより優れたもの:

z = {**x, **y}

Python 2、3.4 以下:

def merge_two_dicts(x, y):
    z = x.copy()  # Start with keys and values of x
    z.update(y)  # Modifies z with keys and values of y
    return z

z = merge_two_dicts(x, y)

説明:

1. Python 3.9.0 以降:

パイプ演算子 (|) は PEP-584 で導入され、辞書アンパック構文を使用して両方の辞書を結合します。

2. Python 3.5 以降:

辞書の展開には二重アスタリスク演算子 (**) が使用されます。各辞書はキーと値のペアとして解凍され、新しい辞書にマージされます。

3. Python 2、3.4 以前:

3.5 より前の Python バージョンでは、copy() メソッドと update() メソッドを使用して辞書を手動でマージする必要があります:

  • copy () は、元の辞書の浅いコピーを作成します。
  • update() は、コピーされた辞書をキーと値のペアで更新します。 2 番目の辞書から。

注:

辞書解凍構文 ({x, y}) を使用する方が、ディクタ内包表記 ({k: v for d in (x, y) for k, v in) を使用します。 d.items()}) または itertools.

のchain() 関数

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

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