python - 使用字典的子字典中的值创建新键

标签 python dictionary for-loop data-structures

我有一本字典:

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/

相关文章:

java - 在分配值后将变量添加到 Map 值

Python - 用字典中的条目替换字符串中的单词

java - For 循环产生数字序列

python - 使用 Anaconda 时使用默认的 Python

python - 在 python3 中解析嵌套 json/列表时出现问题?

r - R 中的模拟,for 循环

python - 避免嵌套 for 循环

python - Twisted SSE 服务器通过 pubsub 订阅 Redis

python - 将选定的列保留为 DataFrame 而不是 Series

python - 如何解析 XML,将特定标签或其内容保留为纯文本?