Python 2 Python 3辞書の合併の4つの方法は、見たことがないものがあります.

1908 ワード

方法1
python 2バージョンに適しています
x = {'a':1, 'b':2}
y = {'c':3, 'd':4}
z = dict(x.items()+y.items())

------------------------------------------------------
z
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

方法2
python 2、python 3バージョンに適しています
x = {'a':1, 'b':2}
y = {'c':3, 'd':4}
x.update(y)  #            x  ,          ,         。

------------------------------------------------------
z
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

方法3
python 2、python 3バージョンに適しています
x = {'a':1, 'b':2}
y = {'c':3, 'd':4}
z = {}
for k,v in x.items():
  z[k] = v
for k,v in y.items():
  z[k] = v

------------------------------------------------------
z
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

方法四
x = {'a':1, 'b':2}
y = {'c':3, 'd':4}
z = (x, **y)

------------------------------------------------------
z
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

方法5
Python 3に適用する.5以降(3.5含む)
x = {'a':1, 'b':2}
y = {'c':3, 'd':4}
z = {**x, **y}

------------------------------------------------------
z
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

まとめ
2つのデータに重複key,メソッド4,メソッド5の結果があればどうなるかを見てみましょう.次の例を見てみましょう.
a = {"A":1,"B":2}
b = {"A":3,"D":4}

------------------------------------------------------
{**a, **b}
Out[11]: {'A': 3, 'B': 2, 'D': 4}  #      b  A,  b   a

dict(a,**b)
Out[12]: {'A': 3, 'B': 2, 'D': 4}

まとめ:dict(a,**b)メソッドは、{**a, **b}と重複するデータに遭遇し、前の値が後の値に置き換えられます.