首页 > 解决方案 > 更改字典的键

问题描述

这是一个简单的练习,可以通过不同的方式解决我只是不知道为什么这不起作用。我从字典开始,然后我想将其键更改为大写,但这会引发错误 ------ RuntimeError: dictionary changed size during iteration

semana = {"Lunes": 4,
           "Martes": 5,
           "Miercoles": 5,
           "Jueves": 4,
           "Viernes": 4,
           "Sabado": 4,
           "Domingo": 4}

for key, value in semana.items():
    semana[key.upper()] = value
    del semana[key]

标签: pythondictionary

解决方案


问题是您在迭代字典时尝试更改字典。这会干扰迭代。相反,您需要创建一个新字典。你可以这样做:

new_dict = {}
for key, value in semana.items():
    new_dict[key.upper()] = value

您还可以使用理解来创建新的字典:

new_dict = {key.upper(): value for key, value in semana.items()}

推荐阅读