2017-09-07 2 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'이고 단어 Zero가 아니거나 나머지 단어도 숫자로 변경됩니까? 좀 이상하게 보입니다 ... –

답변

5

문자열이 동일한 개체 여야하므로 is을 피하십시오. ==을 사용하면 두 개의 별개의 문자열 객체가 여전히 동일하다고 비교할 수 있습니다.

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