python - 删除具有特定值的字典键

标签 python

<分区>

我知道字典不应该以这种方式使用,因此没有内置函数可以帮助执行此操作,但我需要删除字典中具有特定值的每个条目。

所以如果我的字典是这样的:

'NameofEntry1': '0'
'NameofEntry2': 'DNC'
 ...

我需要删除(可能弹出)所有具有 DNC 值的条目,字典中有多个条目。

最佳答案

修改原始字典:

for k,v in your_dict.items():
    if v == 'DNC':
       del your_dict[k]

或者使用字典理解创建一个新的字典:

your_dict = {k:v for k,v in your_dict.items() if v != 'DNC'}

来自docsiteritems()iterkeys()itervalues() 上:

Using iteritems(), iterkeys() or itervalues() while adding or deleting entries in the dictionary may raise a RuntimeError or fail to iterate over all entries.

这同样适用于普通的 for key in dict: 循环。

在 Python 3 中,这适用于 dict.keys()dict.values()dict.items()

关于python - 删除具有特定值的字典键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17095163/

相关文章:

Python 在交互模式下不驻留字符串?

安装包时出现 Python pip 段错误

python - 如何在字典中使用 reduce

python - 将 df.apply() 的输出一次写入多个列

python - Key 存在时出现 KeyError

python - 每列不同的 na_rep

python - 使用父实现 : leads to problems 从子类覆盖 __mul__

python - 排序python列表以使字母出现在数字之前

python - PyWin32、Excel 和 "doing no damage"到现有系统

python - 无法导入包 - "ImportError: No module named _mechanize"