你好我有一本字典:
my_dictionary = {'Kyle': {'benz':2, 'ford':1, 'bmw':5, 'gmc':6, 'subaru':3}
'Jim': {'benz':5, 'ford':9, 'bmw':3, 'gmc':1, 'subaru':2}
'Tom': {'benz':3, 'ford':4, 'bmw':8, 'gmc':2, 'subaru':10}
'Eric: {'benz':6, 'ford':7, 'bmw':9, 'gmc':5, 'subaru':3}
}
我的目标是创建一个名为
的新密钥' german_cars'
其中包括键的总和' bmw'和'奔驰'
我想要新创建的密钥' german_cars'在' my_dictionary'内像这样:
my_dictionary = {'Kyle': {'benz':2, 'ford':1, 'bmw':5, 'gmc':6, 'subaru':3, 'german_cars':7}
'Jim': {'benz':5, 'ford':9, 'bmw':3, 'gmc':1, 'subaru':2, 'german_cars':8}
'Tom': {'benz':3, 'ford':4, 'bmw':8, 'gmc':2, 'subaru':10, 'german_cars':11}
'Eric: {'benz':6, 'ford':7, 'bmw':9, 'gmc':5, 'subaru':3, 'german_cars':15}
}
我想知道使用for循环执行此操作的自动方式。非常感谢帮助知道如何实现这一目标。
先谢谢了。
答案 0 :(得分:1)
my_dict = {'Kyle': {'benz':2, 'ford':1, 'bmw':5, 'gmc':6, 'subaru':3},
'Jim': {'benz':5, 'ford':9, 'bmw':3, 'gmc':1, 'subaru':2},
'Tom': {'benz':3, 'ford':4, 'bmw':8, 'gmc':2, 'subaru':10},
'Eric': {'benz':6, 'ford':7, 'bmw':9, 'gmc':5, 'subaru':3}
}
for k,v in my_dict.items():
v['german_cars'] = v['bmw']+v['benz']
你也可以这样的词典理解
{k:v.update({'german_cars':v['bmw']+v['benz']}) for k,v in my_dict.items()}
两者产生相同的结果。
print my_dict
结果
{'Eric': {'benz': 6,
'bmw': 9,
'ford': 7,
'german_cars': 15,
'gmc': 5,
'subaru': 3},
'Jim': {'benz': 5,
'bmw': 3,
'ford': 9,
'german_cars': 8,
'gmc': 1,
'subaru': 2},
'Kyle': {'benz': 2,
'bmw': 5,
'ford': 1,
'german_cars': 7,
'gmc': 6,
'subaru': 3},
'Tom': {'benz': 3,
'bmw': 8,
'ford': 4,
'german_cars': 11,
'gmc': 2,
'subaru': 10}}
答案 1 :(得分:0)
您可以遍历外部字典,然后直接修改内部字典:
for owner, cars in my_dictionary.items():
cars['german_cars'] = cars.get('bmw', 0) + cars.get('benz', 0)
FWIW,我使用dict.get()所以如果“bmw”或“benz”缺失,查找不会失败。