【发布时间】:2019-11-03 11:35:09
【问题描述】:
我有一个由多个键组成的字典。 Is 是由循环创建的,因此在开始时生成的键没有值,但是我稍后会填充它们。 有时,一个键没有填满,所以我想从字典中删除它
字典看起来像:
{'a' : [1,2,3,4] , 'b' : [5,6,7,8] ,'c': [] ,'d': [9,10,11]}
我可能有多个看起来像“c”的值 我已经尝试过 try/except 但仍然得到“迭代期间字典更改大小”
d= {'a' : [1,2,3,4] , 'b' : [5,6,7,8] ,'c': [] ,'d': [9,10,11]}
dic_key = d.keys()
for key in dic_key:
try:
if len(d[key]) == 0:
del d[key]
except:
pass
"字典在迭代过程中改变了大小"
【问题讨论】:
-
是的@Sayse,绝对至少是第二个的副本
-
你不应该修改你正在循环的迭代。要么创建第二个字典,这样您就可以让一个字典迭代并修改另一个字典,或者使用推导式。
标签: python loops dictionary