首页 > 解决方案 > 删除字典中的多个键

问题描述

我有以下简单的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'

你知道为什么我的代码不能正常工作吗?谢谢你的帮助。

标签: pythonstringword-frequency

解决方案


您可以使用 dict 理解:

updated_dict = {k:v for k,v in wordFreqDic.items() if v != "blonde"}

推荐阅读