Python 展平两个字典列表的乘积

Python 展平两个字典列表的乘积,python,itertools,Python,Itertools,我有两个词典列表,我正试图从中获取产品: from itertools import product list1 = [{'A': 1, 'B': 1}, {'A': 2, 'B': 2}, {'A': 2, 'B': 1}, {'A': 1, 'B': 2}] list2 = [{'C': 1, 'D': 1}, {'C': 1, 'D': 2}] for p in product(list1, list2): print p 这给了我输出: ({'A': 1, 'B': 1

我有两个词典列表,我正试图从中获取产品:

from itertools import product 


list1 = [{'A': 1, 'B': 1}, {'A': 2, 'B': 2}, {'A': 2, 'B': 1}, {'A': 1, 'B': 2}]
list2 = [{'C': 1, 'D': 1}, {'C': 1, 'D': 2}]

for p in product(list1, list2):
    print p
这给了我输出:

({'A': 1, 'B': 1}, {'C': 1, 'D': 1})
({'A': 1, 'B': 1}, {'C': 1, 'D': 2})
({'A': 2, 'B': 2}, {'C': 1, 'D': 1})
({'A': 2, 'B': 2}, {'C': 1, 'D': 2})
({'A': 2, 'B': 1}, {'C': 1, 'D': 1})
({'A': 2, 'B': 1}, {'C': 1, 'D': 2})
({'A': 1, 'B': 2}, {'C': 1, 'D': 1})
({'A': 1, 'B': 2}, {'C': 1, 'D': 2})
如何将这些数据展平,使输出为单个dict而不是一组dict

{'A': 1, 'B': 1, 'C': 1, 'D': 1}
{'A': 1, 'B': 1, 'C': 1, 'D': 2}
{'A': 2, 'B': 2, 'C': 1, 'D': 1}
{'A': 2, 'B': 2, 'C': 1, 'D': 2}
{'A': 2, 'B': 1, 'C': 1, 'D': 1}
{'A': 2, 'B': 1, 'C': 1, 'D': 2}
{'A': 1, 'B': 2, 'C': 1, 'D': 1}
{'A': 1, 'B': 2, 'C': 1, 'D': 2}

看起来你想合并字典

 for p1, p2 in product(list1, list2):
     merged = {**p1, **p2}
     print(merged)

在Python的早期版本中,不能与此表达式合并。使用
p1.update(p2)

谢谢,我正在使用python 2.7,所以我尝试了
p1.merge(p2)
,但这给了我:
AttributeError:'dict'对象没有属性“merge”
@Michael:对不起,我的意思是
update()
不是
merge*()