2017-10-10 1 views
1

Je souhaite supprimer un élément de dictionnaire de ma liste.Supprimer un élément avec une valeur vide dans le dictionnaire django

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

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

Que dois-je faire pour obtenir le résultat ci-dessous:

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

cela supprimera. Mais une étape supplémentaire. dict ((clé, valeur) pour la clé, valeur dans C.iteritems() if value) –

+0

@SandeepBalagopal Cela supprimera également tous les éléments _falsy_ tels que «poisson»: 0' – Selcuk

+0

homme vous avez raison. En outre, il ne pouvait pas y avoir une solution en une étape. Dans la première étape elle-même? à l'intérieur du zip. pas certain. –

Répondre

2

Il suffit d'utiliser un dict comprehension:

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

ou en utilisant une boucle for:

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

ou '{k: v pour k, v dans C.items() si v}' –

+0

@AvinashRaj S'il vous plaît voir mon commentaire ci-dessus. Cela supprimera toutes les valeurs _falsy_ telles que '0',' None' et 'False' ainsi que les chaînes vides. – Selcuk

-2

trop facile juste faire ce

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

espère que cela aide:)