2017-09-07 10 views
0

私は文字列のリストを持っていて、それが特定の文字列であれば、リストをループしてリストの値を0にしたいと思います。以下は、私がしようとしていたコードですが、それが動作していません。特定の文字列であれば、文字列をintにしますか?

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

を結果は次のようになります。[「二」、「三」、0、0、「ワン」]が、それはなし文字列を変更していません。

+0

「is」を「==」に変更します。 – roganjosh

+0

'is'と' None'を一緒に見て、それを繰り返そうとしている場合、 'None'は文字列' None''と非常に異なっていることに注意してください... –

+0

'' None'' sは整数「0」であり、ゼロという単語ではなく、残りの単語も数値に変更しますか?ちょっと変わったようだ... –

答えて

5

isを避けるには、文字列が同じオブジェクトである必要があるためです。 ==を使用すると、2つの異なる文字列オブジェクトは引き続き同等のものを比較できます。

variable2 = [0 if v == 'None' else v for v in variable1] 
関連する問題