在lambda
的帮助下将两个“简单”词典相乘的问题,我决定如下:
v1={'product1': '100', 'product2': '120'}
v2={'product1': '3', 'product2': '2'}
foo = lambda dct_1, dct_2: {key: int(dct_2[key]) * int(dct_1[key]) for key in dct_2}
foo(v1, v2)
# Out: {'product1': 300, 'product2': 240}
如何以相同的方式将两个嵌套字典相乘?
V={'id1': [{'product1': '1', 'product2': '2'}],'id2': [{'product1': '3', 'product2': '4'}]}
Z={'id1': [{'благо1': '10', 'благо2': '25'}], 'id2': [{'product1': '20', 'product2': '15'}]}
答案应如下:
Out:={'id1': [{'product1': '10', 'product2': '50'}], 'id2': [{'product1': '60', 'product2': '60'}]}
我正在使用Python3。
答案 0 :(得分:0)
我会省略lambda
,因为这种理解已经很长了,但基本上你可以使用:
{outerkey: [{innerkey: int(V[outerkey][0][innerkey])*int(Z[outerkey][0][innerkey])
for innerkey in V[outerkey][0]}]
for outerkey in V}
给我:
{'id1': [{'product1': 10, 'product2': 50}],
'id2': [{'product1': 60, 'product2': 60}]}
注意:我假设词典具有相同的键:
V={'id1': [{'product1': '1', 'product2': '2'}],'id2': [{'product1': '3', 'product2': '4'}]}
Z={'id1': [{'product1': '10', 'product2': '25'}], 'id2': [{'product1': '20', 'product2': '15'}]}