2 回答
TA贡献1798条经验 获得超3个赞
您可以collections.defaultdict为此使用:
a_list = [('orange', 'banana'), ('grape', 'apple'), ('cucumber', 'tomatoes'), ('orange', 'banana'), ('grape', 'apple'), ('grape', 'apple')]
b_list = [6, 10, 12, 8, 1, 5]
from collections import defaultdict
new_dict = defaultdict(int)
for a, b in zip(a_list, b_list):
new_dict[a] += b
print(new_dict)
输出:
defaultdict(<class 'int'>,
{('orange', 'banana'): 14,
('grape', 'apple'): 16,
('cucumber', 'tomatoes'): 12}
)
TA贡献1786条经验 获得超11个赞
你可以通过基础实现这一点:
for a,b in zip(a_list,b_list):
try:
d[a]+=b
except:
d.update({a:b})
输出:
{('orange', 'banana'): 14, ('grape', 'apple'): 16, ('cucumber', 'tomatoes'): 12}
尝试将失败,直到所有键都已更新,然后它将开始将下一个值与键相加
添加回答
举报