python - 为什么从字典中删除负值的代码不起作用?

标签 python python-3.x dictionary

我必须删除所有具有负值的条目。为什么我的代码不起作用?

dic = {'aa': 20, 'bb': -10, 'cc': -12}

for i in dic:
    if dic[i] < 0:
        del dic[i]
        
print(dic)

运行此代码时出现异常:

RuntimeError: dictionary changed size during iteration

最佳答案

您可以通过使用字典理解来完成此任务。

dic = {k: v for (k, v) in dic.items() if v >= 0}

关于python - 为什么从字典中删除负值的代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20418851/

相关文章:

python - 错误 : Local variable referenced before assignment

python - 拆分数字模式

python - pipenv需要python 3.7,但已安装的版本是3.8,无法安装

python - 使用字典替换字符串而不删除 Pandas 数据框中的字符

字典包含特定值swift 3

c++ - 使用多重映射算法 (std::minmax_element) 在成对的多重映射中找到最大/最小键 <Class object, enum>?

python - 使用外键向 Django Rest Framework API 发送补丁请求

python - 包含列表的 Pandas 列的 get_dummies

python - 如何使用 while 循环计算 IP 地址中第一段的长度

python - 无法在 Pycharm Windows 中运行 .Robot 文件