2012-10-02 4 views
-2

가능한 중복 : 중첩 된 목록에서
How to convert strings into integers in python?중첩 목록의 문자열을 int로 변환하는 방법은 무엇입니까?

listy = [['1', '2', '3', '4', '5'], "abc"] 

for item in listy[0]: 
    int(item) 

print listy 

, 어떻게 ints에 모든 strings을 변경할 수 있습니까? 위에 나와있는 결과는 다음과 같습니다.

[['1', '2', '3', '4', '5'], 'abc'] 

왜 그런가요?

미리 감사드립니다.

+2

'int (item)'<- 값이 계산 된 다음 폐기됩니다 *. 어딘가에 넣어. 덕분에 –

답변

1

당신은 다시 하위 목록 (listy[0])로 변환 된 항목을 지정해야합니다

listy[0][:] = [int(x) for x in listy[0]] 

설명 : 하위 목록과 변환의 항목을 통해

for item in listy[0]: 
    int(item) 

위의 반복 그것들을 정수로 변환하지만, 표현식 int(item)의 결과는 아무 것도 지정하지 않습니다. 따라서 결과가 손실됩니다.

[int(x) for x in listy[0]]은 목록을 반복하여 각 항목을 정수로 변환하고 새 목록을 반환하는 목록 이해입니다 (for 루프의 약어). 그런 다음 새 목록이 바깥 쪽 목록에 다시 지정됩니다 (선택 사항).

이것은 특정 질문에 대한 매우 맞춤형 솔루션입니다. 보다 일반적인 해결책은 하위 목록에 도달하는 재귀와 숫자 변환 후보를 검색하는 몇 가지 방법을 포함합니다.

+0

! 네가 괜찮다면이 진술이 어떻게 작동하는지 설명 할 수 있니? 나는 클래스의 파이썬을 배우고있다. – pearbear

+0

@pearbear : 몇 가지 설명으로 업데이트되었다. – mhawke

+0

정말 고마워요! – pearbear

관련 문제