python - 删除字典中的多个键
问题描述
我有以下简单的python代码:
# Dictionary of strings and int
wordFreqDic = {
"Hanna": "blonde",
"Brad" : "brown" ,
"Peter" : "blonde",
"Jason" : "brown"
}
#If key exist in dictionary then delete it using del.
def answer():
for i in wordFreqDic:
if wordFreqDic[i]=="blonde":
print("ok")
else:
del wordFreqDic[i]
return wordFreqDic
我想删除值与“金发女郎”不同的键,但代码的问题是:
1)程序给出错误:
RuntimeError: dictionary changed size during iteration
2)程序将其删除,但只有一个键,即输出为:
{'Brad': 'brown', 'Peter': 'blonde', 'Hanna': 'blonde'}
,在这种情况下程序只'Jason'
删除,但我也需要删除'Brad'
。
你知道为什么我的代码不能正常工作吗?谢谢你的帮助。
解决方案
您可以使用 dict 理解:
updated_dict = {k:v for k,v in wordFreqDic.items() if v != "blonde"}
推荐阅读
- google-apps-script - 将可选查询参数添加到使用 Google Drive API 的评论编译器脚本
- c# - 从 2 个数据源将 2 个集合列表连接在一起,找到匹配项并循环遍历结果
- python-3.x - Numpy/Numba 在将非常大的空集分配给 CUDA 时引发错误
- typescript - 将 TypeScriptToLua 与 AzerothCore 和 Eluna Lua 引擎一起使用
- javascript - 如何更改点击或自动播放视频的背景颜色和文本颜色
- batch-file - 从分区索引获取驱动器号
- c++ - 如何在音频的特定点开始播放波形音频文件?
- php - 如何通过单独的联系表单将 HTML 输入从页面通过电子邮件发送给用户
- reactjs - 组件内反应组件的测试计数
- caffe - 如何在训练阶段获得 PyCaffe 的 Top-k 准确率?