如何在for循环中从列表中添加字典值

时间:2020-08-31 21:06:10

标签: python list dictionary for-loop

我有一个称为test的词典列表:

test = [
    {
        'age': 15,
        'country': 'Canada'
    }, 
    {
        'age': 21,
        'country': 'Denmark'
    }, 
    {
        'age': 35,
        'country': 'USA'
    },
    {
        'age': 55,
        'country': 'Canada'
    }
]

我想为每本词典添加一个新的名为“ degrees”的键以及以下列表中的一个值:

listy = [0,1,1,2]

我期望的结果如下:

[{'age': 15, 'country': 'Canada', 'degrees': 0},
 {'age': 21, 'country': 'Denmark', 'degrees': 1},
 {'age': 35, 'country': 'USA', 'degrees': 1},
 {'age': 55, 'country': 'Canada', 'degrees': 2}]

我尝试过:

listy = [0,1,1,2]
for num,n in enumerate(test):
    n['degrees'] = listy[num]

但是抛出一个错误...我认为有一个简单的解决方案,但是我很沮丧。 感谢您的帮助-预先感谢!

1 个答案:

答案 0 :(得分:5)

您可以使用zip同时迭代字典和新值,这比每次迭代中的索引编制要快

for each_dict, value in zip(test, listy):
    each_dict['degrees'] = value

由于列表和字典都是可变的,因此修改each_dict将更新列表。