2017-09-07 1 views
0

J'ai une liste de chaînes et je veux faire une boucle sur la liste et faire la valeur dans la liste 0 si c'est une chaîne spécifique. Voici le code que je tente, mais il ne fonctionne pas:Faire une chaîne un int si c'est une chaîne spécifique?

variable1 = ['None', 'One', 'Two', 'Three', 'None'] 
variable2 = [0 if v is 'None' else v for v in variable1] 

Le résultat devrait être: [0, « One », « Two », « Trois », 0] mais il ne change pas les chaînes Aucun .

+0

Remplacez 'is' par' == '. – roganjosh

+0

Si vous avez vu 'is' et' None' ensemble et que vous essayez de le répéter, notez que 'None' est très différent de la chaîne' 'None'' ... –

+0

Une raison pour laquelle vous voulez le '' None'' s être l'entier '0' et non le mot Zéro ou changer le reste des mots pour être aussi numériques? Cela semble un peu étrange ... –

Répondre

5

Évitez is, car les chaînes doivent être le même objet. Utilisez == pour que deux objets chaîne distincts puissent toujours être égaux.

variable2 = [0 if v == 'None' else v for v in variable1]