使用嵌套数组合并两个字典

Jac*_*rge 0 python arrays dictionary

我有2本词典

a = {'I': [1,2], 'II': [1,2], 'III': [1,2]}
b = {'I': [3,4], 'II': [3,4], 'IV': [3,4]}
Run Code Online (Sandbox Code Playgroud)

我如何合并他们,以便我得到以下结果

c = merge_dicts(a,b)
Run Code Online (Sandbox Code Playgroud)

其中c是 {'I': [1,2,3,4], 'II': [1,2,3,4], 'III': [1,2], 'IV': [3,4]}

有这样一个好的pythonic方式吗?

请注意,我是一个python新手,即使我使用像pythonic这样的词.提前致谢.

kal*_*nik 5

如果您需要所有值:

from itertools import chain
from collections import defaultdict

a = {'I': [1,2], 'II': [1,2], 'IV': [1,2]}
b = {'I': [3,4], 'II': [3,4], 'V': [3,4]}

d = defaultdict(list)
for key, value in chain(a.iteritems(), b.iteritems()):
    d[key].extend(value)
d
Run Code Online (Sandbox Code Playgroud)

输出:

defaultdict(<type 'list'>, {'I': [1, 2, 3, 4], 'II': [1, 2, 3, 4], 'V': [3, 4], 'IV': [1, 2]})
Run Code Online (Sandbox Code Playgroud)

  • 当然+1**`itertools`可以做到这一点,哈哈. (2认同)