我有两个字典,每个字典都有相同的键,但值不同.
food = {'fruit' : 5, 'vegetable' : 2, 'dairy' : 1, 'meat' : 3, 'grain' : 1}
fav = { 'fruit' : ['apple', 'orange', 'banana', 'grape', 'plum'],
'vegetable' : ['carrot', 'corn'],
'dairy' : ['milk'],
'meat' : ['chicken', 'egg', 'beef'],
'grain' : ['bread']
}
Run Code Online (Sandbox Code Playgroud)
我希望实现的结果将是这样的,
eats = { 'fruit' : 5, ['apple', 'orange', 'banana', 'grape', 'plum'],
'vegetable' : 2, ['carrot', 'corn'],
...
Run Code Online (Sandbox Code Playgroud)
等等
*****编辑********
例如,每个字典中的某些条目可能是空的
food = {'fruit' : 5, 'vegetable' : 2, 'dairy' : 1, 'meat' : 3, 'grain' : 1, 'sweets' : 0}
Run Code Online (Sandbox Code Playgroud)
糖果不是最喜欢的,所以我如何结合这些字典保存糖果,而不是一个关键的错误?
你可以使用dict理解和元组.我认为你无法获得你期望的输出,因为它不是有效的dict(逗号应该是分开的neihbor键):
eats = {key : (food[key],fav[key]) for key in food}
print(eats)
{'dairy': (1, ['milk']),
'fruit': (5, ['apple', 'orange', 'banana', 'grape', 'plum']),
'grain': (1, ['bread']),
'meat': (3, ['chicken', 'egg', 'beef']),
'vegetable': (2, ['carrot', 'corn'])}
Run Code Online (Sandbox Code Playgroud)
编辑
要进行编辑,您需要在fav
dict中添加check键:
eats = {key : (food[key],fav[key]) for key in food if key in fav}
Run Code Online (Sandbox Code Playgroud)
您的示例的结果与发布的结果相同.