我检查了所有其他具有相同错误的问题,但没有找到有用的解决方案 =/
我有一个列表字典:
d = {'a': [1], 'b': [1, 2], 'c': [], 'd':[]}
其中一些值为空。在创建这些列表结束时,我想在返回我的字典之前删除这些空列表。目前我正在尝试按如下方式执行此操作:
for i in d:
if not d[i]:
d.pop(i)
但是,这给了我运行时错误。我知道您在遍历字典时无法在字典中添加/删除元素……那么有什么办法解决这个问题?
有关这可能导致问题的引用以及原因,请参阅 在迭代 Python 字典时对其进行修改。
原文由 user1530318 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Python 3.x 和 2.x 中,您可以使用
list
强制复制密钥:在 Python 2.x 中调用
keys
复制了您可以在修改dict
时迭代的键:但请注意,在 Python 3.x 中,第二种方法对您的错误没有帮助,因为
keys
返回一个 视图对象,而不是将键复制到列表中。