我有一个python字典,看起来像这样。
{ 'item1' : [1,2,3,4,5,6],
'item2' : [2,3,1],
.
.
.
'item n' : [4,2,4,3,2]
}
现在我的要求是我要添加此dict&的数值。将其显示为: -
{ 'item1' : [21],
'item2' : [6],
.
.
.
'item n' : [15]
}
我只想要总结每个键的多个值。显示。仅供参考,我正在使用追加功能。以下是我的代码。
for row in range(2,sheet2.max_row):
for column in "D":
cell_name = "{}{}".format(column, row)
for column2 in "P":
cell_name2 = "{}{}".format(column2,row)
arrdata2dict.setdefault(sheet2[cell_name].value,[])
arrdata2dict[sheet2[cell_name].value].append(sheet2[cell_name2].value)
答案 0 :(得分:3)
这似乎不必要地复杂化。如果输入为
inpt = { 'item1' : [1,2,3,4,5,6],
'item2' : [2,3,1],
.
.
.
'item n' : [4,2,4,3,2]
}
然后,您可以使用dictionary comprehension代替:
out = {k: [sum(inpt[k])] for k in inpt.keys()}
答案 1 :(得分:2)
你可以动态创建字典:
Result = dict([(key, sum(values)) for key, values in yourDict.items()])
# or...
Result = {key: sum(values) for key, values in yourDict.items()}
在这里,新词典的值将是数字,但如果确实需要将它们作为列表,则可以将方括号内的sum
括号括起来:{{1 }}
答案 2 :(得分:1)
items = {'item1' : [1,2,3,4,5,6],
'item2' : [2,3,1],
'item3' : [4,2,4,3,2]
}
for key, values in items.items():
items[key] = sum(values)