在python中操作两个字典

时间:2016-01-18 15:24:27

标签: python-3.x dictionary

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的新学习主要是通过阅读,所以请原谅我的简单问题。我已经挣扎了一段时间......

2 个答案:

答案 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()}