2013-03-22 2 views
0

별도의 결과는 다음과 같다 : 나는파이썬 : 나는 re.findall하고 결과를 사용하고 re.findall

같은 다른 변수의 "튜플"의 각 부분을 저장하고 싶은
[(u'! mais', u'! - but', u'0.0625')] 

french = u'! mais' 
english = u'! - but' 
prob = u'0.0625' 

그리고 문자열 u'0.0625 '를 부동 소수점 숫자로 변환하고 싶습니다. 아이디어가 있으십니까? 당신은 단지 하나의 튜플의 목록이있는 경우

+0

사용하는 정규 표현식은 무엇인가 : 당신이 목록을 가지고 있다면,

prob = float(prob) 

을 또는 : 그녀의 방법, 당신은 float를 호출하여 float로 prob 변환? – isedev

+0

re.findall (r '(. *?) \ s [|] {3} \ s [.] {3} \ s [0-9.0-9e \ -0-9] * \ s [0-9.0-9e \ -0-9] * \ s ([0-9.0-9e \ -0-9] *) \ s [0-9.0-9e \ -0-9] * \ s [ 0-9.0-9e \ -0-9] * ', a) –

답변

1

은 : 여러 튜플이있는 경우

french, english, prob = result[0] 

, 당신은 아마 그들에 루프에 할 것입니다 :

for result in result: 
    french, english, prob = result 
    # do something with this particular french, english, prob 

하지만 당신이 만들고 싶어 세 목록 그것에서, 그것은 쉽게도있다 :

frenchies, englishers, probs = zip(*results) 

EIT

probs = map(float, probs) 
+0

그는 정규 표현식에서 명명 된 캡처 그룹을 사용하는 것이 더 나을 것입니다. –

+0

@ sr2222 : 그러면 3 개의 별도 변수가 아니라 3 개의 명명 된 값을 가진 사전을 그에게 효과적으로 줄 것입니다. 코드를 보았다면, dict이 유용하거나 유용 할 가능성이 높습니다. 그러나 저는 그가 단지 세 가지 별개의 변수를 필요로하는 좋은 기회이기 때문에 그만하고 싶지 않았습니다. – abarnert

+0

네, 효과가있었습니다. 고마워요. –