我有一本字典:
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”的新 key
这需要键“bmw”和“benz”的总和。
我希望在 my_dictionary
中拥有新创建的 key “german_cars”,如下所示:
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 循环自动执行此操作的方法。
最佳答案
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}}
关于python - 使用字典的子字典中的值创建新键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43025142/