Python で 2 つの辞書 (dict) をマージする方法

WBOY
リリース: 2016-06-16 08:41:49
オリジナル
1191 人が閲覧しました

この記事の例では、Python で 2 つの辞書 (dict) を結合する方法を説明し、参考のために皆さんに共有します。具体的な方法は以下の通りです。

既存の 2 つの辞書 dict は次のとおりです:

dict1={1:[1,11,111],2:[2,22,222]}
dict2={3:[3,33,333],4:[4,44,444]}

ログイン後にコピー

2 つの辞書をマージすると、次のような結果が得られます:

{1:[1,11,111],2:[2,22,222],3:[3,33,333],4:[4,44,444]}

ログイン後にコピー

方法 1:

dictMerged1=dict(dict1.items()+dict2.items())

ログイン後にコピー

方法 2:

dictMerged2=dict(dict1, **dict2)

ログイン後にコピー

方法 2 は以下と同等です:

dictMerged=dict1.copy()
dictMerged.update(dict2)

ログイン後にコピー

または:

dictMerged=dict(dict1)
dictMerged.update(dict2)

ログイン後にコピー

方法 2 は方法 1 よりもはるかに高速です。timeit を使用したテストは次のとおりです

$ python -m timeit -s 'dict1=dict2=dict((i,i) for i in range(100))' 'dictMerged1=dict(dict1.items()+dict2.items())'
  10000 loops, best of 3: 20.7 usec per loop
$ python -m timeit -s 'dict1=dict2=dict((i,i) for i in range(100))' 'dictMerged2=dict(dict1,**dict2)'
  100000 loops, best of 3: 6.94 usec per loop
$ python -m timeit -s 'dict1=dict2=dict((i,i) for i in range(100))' 'dictMerged3=dict(dict1)' 'dictMerged3.update(dict2)'
  100000 loops, best of 3: 7.09 usec per loop
$ python -m timeit -s 'dict1=dict2=dict((i,i) for i in range(100))' 'dictMerged4=dict1.copy()' 'dictMerged4.update(dict2)'
  100000 loops, best of 3: 6.73 usec per loop

ログイン後にコピー

この記事が皆さんの Python プログラミングに役立つことを願っています。

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