RuntimeError: dictionary changed size during iteration错误

Python kingmo888 956℃ 0评论

Python中执行dict字典键值遍历时,出现这个错误提示 :RuntimeError: dictionary changed size during iteration

它的意思是 字典在迭代的过程中,字典本身大小发生了变化。

 

我们来看具体的情况,假设一个字典,如下:

test = {'aaaa': {'nums': 1859427}, 'bbbb': {'nums': 1725838}}
for k in test.keys():
    test.pop(k)

出现如下错误提示:


  File "F:/xxxxx.dddddx..xxxxx这里隐去了路径.py", line 11, in <module>
    for k in test.keys():

RuntimeError: dictionary changed size during iteration

记得以前keys()是静态的(- -,原谅我吧。要么是3.5和2.7的差异,要么是我记错了)

怎么办呢?我们跳出这个套路,改用仅遍历字典的键值:

for k in list(test.keys()):
    test.pop(k)

这样就ok啦。

转载请注明:Python量化投资 » RuntimeError: dictionary changed size during iteration错误

喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址