2012-08-31 5 views
2

s = "6.1101,17.592,3.3245\n"과 같은 문자열을 루아의 숫자로 변환하려면 어떻게해야합니까? 파이썬에서쉼표로 구분 된 문자열을 배열로 가져 오기

, 나는 보통

a = s.strip().split(',') 
a = [float(i) for i in a] 

루아와 함께이 작업을 수행하는 적절한 방법은 무엇입니까?

답변

3

이것은 매우 사소한 일입니다. 그냥 반복 매치를하십시오 :

for match in s:gmatch("([%d%.%+%-]+),?") do 
    output[#output + 1] = tonumber(match) 
end 

물론 이것은 숫자에 공백이 없다고 가정합니다.

+3

's : gmatch ("([^, % s] +)")'를 사용하면 아마도 더 강력하고 또한 공백을 허용 할 수 있습니다. 반면에이 패턴은 숫자가 아닌 쉼표 사이의 "단어"를 추출합니다. – lhf

관련 문제