Python 如何清理值等于变量的字典
我有一本由多个键组成的字典。是由循环创建的,因此在开始时生成的键没有值,但我稍后会填充它们。 有时,某个键没有填充,所以我想将其从字典中删除 字典看起来像:Python 如何清理值等于变量的字典,python,loops,dictionary,Python,Loops,Dictionary,我有一本由多个键组成的字典。是由循环创建的,因此在开始时生成的键没有值,但我稍后会填充它们。 有时,某个键没有填充,所以我想将其从字典中删除 字典看起来像: {'a' : [1,2,3,4] , 'b' : [5,6,7,8] ,'c': [] ,'d': [9,10,11]} 我可能有多个看起来像“c”的值 我尝试了try/except,但仍然得到了“在迭代过程中更改了字典大小” “迭代期间字典更改大小”使用: 试试这个: d={k:v代表k,d.items()中的v如果len(v)} yu
{'a' : [1,2,3,4] , 'b' : [5,6,7,8] ,'c': [] ,'d': [9,10,11]}
我可能有多个看起来像“c”的值
我尝试了try/except,但仍然得到了“在迭代过程中更改了字典大小”
“迭代期间字典更改大小”使用:
试试这个:
d={k:v代表k,d.items()中的v如果len(v)}
yup@Sayse,绝对是第二个的副本,你不应该修改你正在循环的iterable。或者创建第二个字典,这样您可以有一个字典要迭代,另一个字典要修改,或者使用理解。如果v
应该足够了。无需检查len
您是对的,因为bool([])为False
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