我想删除一个for循环字典中的一些项目,然后我按照规范从这个How to delete items from a dictionary while iterating over it?如何删除字典元素在for循环中
循环执行.keys
:
b = {'a':1, 'b' : 2}
for k in b.keys():
if b[k] == 1:
del b[k]
结果:
Traceback (most recent call last):
File "<input>", line 1, in <module>
RuntimeError: dictionary changed size during iteration
b
{'b': 2}
类似地,上循环.items()
:
b = {'a':1, 'b' : 2}
for k, v in b.items():
if v == 1:
del b[k]
Traceback (most recent call last):
File "<input>", line 1, in <module>
RuntimeError: dictionary changed size during iteration
b
{'b': 2}
循环后,它返回正确的结果,但也提出RuntimeError
,我该如何解决它?
'list'也是不必要的。因为v中的k应该是一样的。 – user312016
你指的是什么? @ user312016 –
噢,我错过了你的问题,我的例子不好,b代替v:for k in b。 – user312016