python – 使用for循环从字典中删除项目
参见英文答案 > deleting entries in a dictionary based on a condition????????????????????????????????????1个
现在,我得到一个RuntimeError:字典在迭代错误期间改变了大小.没有什么大惊喜.我发布这个问题的原因是: >找出是否有一个优雅的解决方案,不需要创建一个新的字典(只包含值> gt; =阈值的键). 最佳答案
由于Python字典是作为哈希表实现的,因此您不应该依赖它们具有任何类型的顺序.密钥顺序可能无法预测地改变(但仅在插入或移除密钥之后).因此,无法预测下一个关键. Python会抛出RuntimeError以确保安全,并防止人们遇到意外结果.
Python 2的
但是,Python 3的dict.items返回view object,它反映了对字典所做的所有更改.这就是上面的解决方案仅适用于Python 2的原因.您可以将my_dict.items()转换为list(元组等)以使其与Python 3兼容. 解决问题的另一种方法是选择要删除的密钥,然后将其删除
这适用于Python 2和Python 3. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |