python - 更改字典的键
问题描述
这是一个简单的练习,可以通过不同的方式解决我只是不知道为什么这不起作用。我从字典开始,然后我想将其键更改为大写,但这会引发错误 ------ 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]
解决方案
问题是您在迭代字典时尝试更改字典。这会干扰迭代。相反,您需要创建一个新字典。你可以这样做:
new_dict = {}
for key, value in semana.items():
new_dict[key.upper()] = value
您还可以使用理解来创建新的字典:
new_dict = {key.upper(): value for key, value in semana.items()}
推荐阅读
- java - MATCH_PARENT/XML 和以编程方式生成的按钮之间的水平填充像素差异
- angular - 由于 localStorage 变量的值而动态更改导航栏的问题
- python - 计算从最接近的矩阵获得的矩阵索引的平均值
- java - 如何扩展 Android Chronometer?
- python - 关于使用 dict 拆分数据帧的错误
- vue.js - webpack 将不同入口点的所有依赖项捆绑在一个包中,并在所有相应的 html 中使用相同的包
- swift - 如何在可可应用程序中合成鼠标点击?
- xamarin.forms - 使用 xamarin.forms 未完全加载 ListView 项目
- quantum-computing - 在真正的量子计算机上测试 Q# 代码?
- animation - 调整大小时的 SwiftUI 文本剪辑