Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何清理值等于变量的字典_Python_Loops_Dictionary - Fatal编程技术网

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