2017-10-10 51 views
1

我想移除列表中的字典项。在django词典中删除空值的项目

Animals = ['dog', 'cat', 'fish', 'goat'] 
Owner = ['Nash', 'Luffy', '', ''] 

C = dict(zip(Animals, Owner)) 
C = {'dog':'Nash', 'cat':'Luffy', 'fish':'', 'goat':''} 

我应该怎么做才能达到以下效果:

C = {'dog':'Nash', 'cat':'Luffy'} 
+0

这将删除。但是一个额外的步骤。 dict((键,值)键,值在C.iteritems()如果值) –

+0

@SandeepBalagopal这也将删除所有_falsy_元素,如'鱼':0' – Selcuk

+0

你是对的人。也不可能有一步解决方案。在第一步本身?在邮编里面。不确定。 –

回答

2

只需使用一个dict comprehension

>>> {k: v for k, v in C.items() if v != ''} 
{'dog': 'Nash', 'cat': 'Luffy'} 

或使用for循环:

for k, v in C.items(): 
    if v == '': 
     del(C[k]) 
+0

或'{k:v for k,v in C.items()if v}' –

+0

@AvinashRaj请看我上面的评论。这将删除所有_falsy_值,例如“0”,“None”和“False”以及空字符串。 – Selcuk

-2

太容易做到这

mylist = {} 
count = 0 
for i in animals: 
    mylist[i] = owner[count] 
    count += 1 

希望它可以帮助:)