我有一个字典,列表为值:
my_dict = {1: [2,3], 2: [4, 5], 3: [6, 7]}
我希望更新字典以将值更新为旧列表值的总和:
my_dict = {1: 5, 2: 9, 3: 13}
最有效/ pythonic的方法是什么?我通常做的是:
for key in my_dict:
my_dict[key] = sum(my_dict[key])
有更好的方法吗?
答案 0 :(得分:3)
您可以使用词典理解:
my_dict = {1: [2,3], 2: [4, 5], 3: [6, 7]}
new_d = {a:sum(b) for a, b in my_dict.items()}
输出:
{1: 5, 2: 9, 3: 13}
答案 1 :(得分:1)
您可以使用reduce
代替sum
:
from functools import reduce
my_dict = {1: [2,3], 2: [4, 5], 3: [6, 7]}
final = {k: reduce(lambda x,y: x+y, v) for k,v in my_dict.items()}
输出:
{1: 5, 2: 9, 3: 13}
否则,您可以参考此thread获取更多信息。