我有这个:
dict1 = defaultdict(lambda:defaultdict(list))
dict1['rl1']['sh1'] = ['a','b']
dict1['rl1']['sh2'] = ['c','d']
dict1['rl2']['sh1'] = ['c','d']
dict2 = defaultdict(lambda:defaultdict(list))
dict2['rl1']['sh1'] = ['p','q']
dict2['rl1']['sh3'] = ['r','s']
dict2['rl3']['sh1'] = ['r','s']
我想把两个defaultdict合并,结果是:
^{pr2}$我不知道怎么得到这个结果。。我尝试过使用dict1.items()和dict2.items(),或者update函数,但是我一定遗漏了一些东西,因为我无法获得defaultdicts的“union”。在
稍微“优雅点”:
要获得更节省内存的解决方案:
^{pr2}$这将使用迭代器来防止在内存中创建临时列表
itertools.chain docs
对于后代来说,这里有一个通用函数,它将合并嵌套的dictionary对象(defaultdict或no),其中第二层值支持
+
运算符。(列表、整数、集合等):相关问题 更多 >
编程相关推荐