gpt4 book ai didi

python - 如何避免 "RuntimeError: dictionary changed size during iteration"错误?

转载 作者:IT老高 更新时间:2023-10-28 12:20:08 25 4
gpt4 key购买 nike

我检查了所有其他问题都存在相同的错误,但没有找到有用的解决方案 =/

我有一本列表字典:

d = {'a': [1], 'b': [1, 2], 'c': [], 'd':[]}

其中一些值为空。在创建这些列表结束时,我想在返回我的字典之前删除这些空列表。目前我正在尝试这样做:

for i in d:
if not d[i]:
d.pop(i)

但是,这给了我运行时错误。我知道您在遍历字典时无法在字典中添加/删除元素......那么有什么方法可以解决这个问题?


Modifying a Python dict while iterating over it对于这可能导致问题的引用,以及原因。

最佳答案

在 Python 3.x 和 2.x 中,您可以使用 list强制复制 key :

for i in list(d):

在 Python 2.x 中调用 keys复制了您可以在修改 dict 时迭代的键:

for i in d.keys():

但请注意,在 Python 3.x 中,第二种方法对您的错误没有帮助,因为 keys 返回一个 view object而不是将键复制到列表中。

关于python - 如何避免 "RuntimeError: dictionary changed size during iteration"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11941817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com