将一个字典中的第二个值与另一个字典中的所有值相加
Sum up the second value from one dictionary with all values from another dictionary
我有两个字典,键相同,但值不同。我想制作一个新字典,其中包含 dictionary1 中的所有值,并将其与 dictionary2 的第二个值相加。
input:
dic1 = { 'ENST1' : [ 33, 55, 66, 77 ], 'ENST2' : [ 55, 32, 45 ] }
dic2 = { 'ENST1' : [ 'abc', 100, 200 ], 'ENST2' : [ 'cdg', 200, 300 ] }
output:
dic3 = { 'ENST1' : [ 133, 155, 166, 177 ] , [ 'ENST2' : 255, 232, 245 ] }
我正在使用 python 3.6.
我解决了。将来如果有人需要答案,这样做就可以了:
for key in dic1:
for i in range(0,len(dic1[key])):
if len(dic1[key]) > 0:
dic1[key][i] = dic1[key][i] + dic2[key][1]
我已经直接覆盖了 dic1,如果不需要,那么我可以将 dic1 复制到 dic3 中,并在最后一行执行此操作:
dic3[key][i] = dic1[key][i] + dic2[key][1]
这个版本也可以:
dic3 = {}
for (k,v), (k2,v2) in zip(dic1.items(), dic2.items()):
dic3[k] = [x+y for x, y in zip(v, v2)]
我有两个字典,键相同,但值不同。我想制作一个新字典,其中包含 dictionary1 中的所有值,并将其与 dictionary2 的第二个值相加。
input:
dic1 = { 'ENST1' : [ 33, 55, 66, 77 ], 'ENST2' : [ 55, 32, 45 ] }
dic2 = { 'ENST1' : [ 'abc', 100, 200 ], 'ENST2' : [ 'cdg', 200, 300 ] }
output:
dic3 = { 'ENST1' : [ 133, 155, 166, 177 ] , [ 'ENST2' : 255, 232, 245 ] }
我正在使用 python 3.6.
我解决了。将来如果有人需要答案,这样做就可以了:
for key in dic1:
for i in range(0,len(dic1[key])):
if len(dic1[key]) > 0:
dic1[key][i] = dic1[key][i] + dic2[key][1]
我已经直接覆盖了 dic1,如果不需要,那么我可以将 dic1 复制到 dic3 中,并在最后一行执行此操作:
dic3[key][i] = dic1[key][i] + dic2[key][1]
这个版本也可以:
dic3 = {}
for (k,v), (k2,v2) in zip(dic1.items(), dic2.items()):
dic3[k] = [x+y for x, y in zip(v, v2)]