2010-01-30 5 views
6

TSP 형식 문제에 사용할 xy 좌표를 나타내는 데이터 소스에서 일부 숫자를 읽습니다. 저는 파이썬에 익숙하지 않아 목록을 최대한 활용하려고합니다. 데이터를 읽고 구문 분석 한 후 다음과 같은 문자열 목록의 목록이 남았습니다.문자열 목록의 목록에서 파이썬의 int 목록 목록으로 캐스팅

[['565.0', '575.0'], ['1215.0', '245.0'], ...yougetthepoint... ['1740.0', '245.0']]

나는 오히려 정수 점을 처리하려고합니다. 문자열을 포함한리스트를 int를 포함한리스트로 변환하려면 어떻게해야합니까? 그들은이 오류가 발생하여 멋지게 캐스팅되지 않는 것 같습니다 :

ValueError: invalid literal for int() with base 10: '565.0'

십진수는 문제를 일으키는 것 같습니다.

+1

"캐스팅"이라고하지 마십시오. 파이썬은 "캐스팅"을 사용하지 않습니다. 귀하의 질문은 Java 또는 C++에서 나타나는 "캐스팅"에 관한 것이 아닙니다. 귀하의 질문에 대한 간단한 변환을 문자열에서 부동으로. –

+0

@S. Lott 어떻게 캐스팅하지 "문자열에서 부동으로 데이터의 간단한 변환"무엇입니까? 용어는 제쳐두고, 같은 일을하고 있어요. – Chris

+1

S. Lott이 맞습니다. 문자열 객체에서 float 객체를 만듭니다. 정적 유형 언어의 "형 변환"은 새 오브젝트를 작성하지 않고 동일한 오브젝트를 다른 유형으로 재 해석하고 원래 오브젝트가 h 제된 경우 캐스트도됩니다. 파이썬에서 문자열 s = "123.4"를 정의하면 float()은 원래 문자열과 관계없이 완전히 새로운 객체를 만듭니다. 그래서 파이썬에서하는 일은 캐스트와 같은 것이 아닙니다. – PaulMcG

답변

10
x = [['565.0', '575.0'], ['1215.0', '245.0'], ['1740.0', '245.0']] 
x = [[int(float(j)) for j in i] for i in x] 
+0

ValueError : float()에 대한 리터럴이 잘못되었습니다. <- 흠 .. – Chris

+0

방금 ​​생성 한 고장난 발전기는 무엇입니까? –

+0

그들 중 누구도 단지 기간입니다. 그것은 호기심입니다. 그것은 텍스트 메이트의 내부에서 실행 중입니다. – Chris

관련 문제