dict1 = {'groceries': ['apples', 'oranges', 'tomatoes'], 'supplies': ['notebook', 'pencil', 'tape']}
dict2 = {'apples': 2.99, 'tomatoes': 1.29, 'notebook': 3.15}
我想要完成的是,如果dict2
中的某个键(例如'apples'
)与dict1
中的某个值匹配,那么dict2
中的相应值(例如2.99
)对dict1
中的密钥求和(例如'groceries'
)。
所以在这个例子中,我希望结果是一个新词典:
dict3 = {'groceries': 4.28, 'supplies': 3.15} # groceries = 2.99 + 1.29
我对python的新学习主要是通过阅读,所以请原谅我的简单问题。我已经挣扎了一段时间......
答案 0 :(得分:1)
以下内容应该有效:
>>> {c: sum(dict2.get(p, 0) for p in items) for c, items in dict1.items()}
{'supplies': 3.15, 'groceries': 4.28}
答案 1 :(得分:0)
简单的词典理解:
dict3 = {category: sum(dict2.get(p, 0) for p in products) for category, products in dict1.items()}