2014-01-27 3 views
-2

예를 들어, "1+2-3.0" 문자열에서 [1.0, 2.0, -3.0]리스트를 얻고 싶습니다. 그러나 이것을 수행하는 방법은 없습니다.문자열을 파이썬으로 숫자로 분할

귀하의 의견은 무엇입니까?

+2

당신은 sp 필요합니다 먼저 요구 사항을보다 잘 파악하십시오. 왜 '3.0'대신에 '-3.0'을 원하니? – user2357112

+0

'1 + 2 '사이의'+'는 어떻게 되었습니까? –

+0

@BurhanKhalid'+2' =='2'이기 때문에 그가'1, 2'가 필요하다고 생각합니다. 그래서 @Abhijit 대답이 완벽하다고 생각합니다. –

답변

2

Regex를 사용하면 매우 쉽게이 작업을 수행 할 수 있습니다. 문자열 목록이 될 결과는 결과에 맞게 float로 최종 변환되어야합니다.

구현

import re 
s = "1+2-3.0" 
map(float, re.findall("([+-]?[\d\.]+)", s)) 

당신은 파이썬 3.X를 사용하는 경우는지도 객체를 반환으로 나열하는지도를 변환해야합니다. 그렇지 않으면, 기호

출력

[1.0, 2.0, -3.0] 
로 시작되는

모든 숫자 (숫자와 기간) 찾기 정규식 설명 목록 이해

[float(e) for e in re.split("[+-]", s)] 

를 사용

+0

'map (float, re.split ("[+ -]", s))'이 예상대로 작동하지 않습니다. –

+0

@PriyankPatel : Python 3.X를 사용 중입니까 – Abhijit

+0

아니요. '2.7.3'. o/p는'[1.0, 2.0, 3.0]'이다. –