web-dev-qa-db-ja.com

辞書を一緒に追加するPython

私は2つの辞書があり、それらを1つにしたいと思います:

この擬似Pythonのようなものは素晴らしいでしょう:

dic0 = {'dic0': 0}
dic1 = {'dic1': 1}

ndic = dic0 + dic1
# ndic would equal {'dic0': 0, 'dic1': 1}
85
rectangletangle

中間ストレージを使用せずに新しいdictを作成することに興味がある場合:(これはdict.items()を使用するよりも高速で、私の意見ではきれいです)

dic2 = dict(dic0, **dic1)

または、既存の辞書のいずれかを使用して満足している場合:

dic0.update(dic1)
144
bluepnume
>>> dic0 = {'dic0':0}
>>> dic1 = {'dic1':1}
>>> ndic = dict(dic0.items() + dic1.items())
>>> ndic
{'dic0': 0, 'dic1': 1}
>>>
16
Vijay

更新方法 を探しています

dic0.update( dic1 )
print( dic0 ) 

与える

{'dic0': 0, 'dic1': 1}
12
Mark

辞書を追加するいくつかの方法があります。

Python3の辞書展開機能を使用できます。

ndic = {**dic0, **dic1}

または、両方の項目を追加して新しい辞書を作成します。

ndic = dict(dic0.items() + dic1.items())

変更してもよければdic0

dic0.update(dic1)

あなたの[〜#〜] not [〜#〜] OKを修正する場合dic0

ndic = dic0.copy()
ndic.update(dic1)

1つの辞書内のすべてのキーが文字列(dic1この場合、もちろん引数は交換できます)

ndic = dict(dic0, **dic1)

場合によっては、dict内包表記(Python 2.7以降)を使用すると便利な場合があります。
特に、いくつかのキー/値を同時に除外または変換する場合。

ndic = {k: v for d in (dic0, dic1) for k, v in d.items()}
10
ideasman42
dic0.update(dic1)

これは実際には結合された辞書を返さず、単にdic0

5
Daniel Roseman

次回質問する前にサイトを検索してください: 2つの辞書を連結してPythonで新しい辞書を作成する方法

最も簡単な方法は、サンプルコードを使用するだけですが、各辞書のitems()メンバーを使用することです。したがって、コードは次のようになります。

dic0 = {'dic0': 0}
dic1 = {'dic1': 1}
dic2 = dict(dic0.items() + dic1.items())

これをIDLEでテストし、正常に動作します。ただし、このトピックに関する前の質問では、このメソッドは低速であり、メモリを消費することが示されています。そこで推奨される他のいくつかの方法がありますので、メモリ使用量が重要な場合はそれを見てください。

5
LukeFitz