2016-12-29 1 views
2

목록은 쉼표로 구분 된 문자열을 변환, I은 다음처럼 주어진 요소의 한 요소 목록을 가지고플로트 파이썬

각각의 값만을 쉼표로 구분
x= ['1.1,1.2,1.6,1.7'] 

. 나는이 내가 x=[float(i) for i in x]x=[float(i) for i in x.split()]을 시도했습니다

x=[1.1, 1.2, 1.6, 1.7] 

처럼 수레의 목록, 예컨대 만들고 싶어하지만 모두 반환 오류.

+1

는 X '의 시도 [0] .split (', ')': float 기능이이 list comprehension 동등 우리 목록 x[0].split(',')

의 각 항목에 대해 호출? – martianwars

+0

'x'는 목록이므로'x [0]'을 통해 액세스해야합니다. 또한 분리 문자를'split' 호출에 제공해야합니다 (예 :'x [0]).split (',') ' – UnholySheep

답변

0

분할 쉼표로 문자열 및 구성 각 항목에서 float :

[ float(item) for item in '1.1,2.3,5.1'.split(',') ] 
+0

OP에 다른 입력이 있습니다. – martianwars

5

x 그래서 당신은 x[0]을 필요로하는 문자열에 액세스하는 하나의 문자열 목록입니다. 해당 문자열은 쉼표로 구분되어 있으므로 구분 기호 (split(','))를 지정해야합니다. (그렇지 않으면, split()은 공백에서 문자열을 분할 as described in the docs 시도합니다.)

그래서 당신이 결국 : 당신이 문자열에 split() 함수를 적용하고 있는지가 아니라 하나의 요소 목록 확인

[float(i) for i in x[0].split(',')] 
0

. 이를 확인하려면 x[0]을 사용하십시오. 또한 split() 함수에 구분 기호 ,을 전달하십시오.

x = [float(i) for i in x[0].split(',')] 
0

x=[float(i) for i in x.split()]은 두 가지를 제외하고는 거의 정확합니다. 하나 들어, 당신은 아무것도 split() 함수에 전달하지 않으므로 문자열에 아무것도 분할하지 않을 것입니다 (그것은 문자열에만없는 공백으로 분리됩니다). 쉼표로 구분하고 싶으므로 x.split(',')과 같이 쉼표를 붙여야합니다.

두 번째로 은 하나의 문자열을 포함하는 목록 인 x= ['1.1,1.2,1.6,1.7']으로 정의되며, x[0]으로 배열의 문자열을 참조해야합니다. 마지막 코드는 다음과 같습니다

x = ['1.1,1.2,1.6,1.7'] 
floats = [float(i) for i in x[0].split(',')] 
print(floats) 

이것은 수레의 목록을 출력합니다 [1.1, 1.2, 1.6, 1.7]

x 경우 당신은 단순히 floats = [float(i) for i in x.split(',')]을 사용, x = '1.1,1.2,1.6,1.7'처럼, 단지 문자열했다.

+1

배열이 아닌 목록입니다. https://docs.python.org/2/library/array.html – UnholySheep

+0

@UnholySheep 고마워요. 용어를 수정했습니다. –

+0

FYI "아무것도 분할하지 않을 것"은 정확하지 않습니다. [docs] (https://docs.python.org/3/library/stdtypes.html#str.split)를 참조하십시오. - 구분 기호가 없으면 대신 공백으로 나뉘어집니다. . – whrrgarbl

1

이 같은 map()를 사용할 수 있습니다

list(map(float, x[0].split(','))) 

map()는 (: x[0].split(',') 우리의 경우에이 목록을) 함수 (우리의 경우 float)와 반복 가능한 걸립니다.

[float(item) for item in x[0].split(',')] 
+0

Python3 +에서'map'은리스트를 리턴하지 않습니다. 맵 오브젝트를 반환합니다.리스트로 변환해야합니다. –

+0

@IronFist 파이썬 3은이 질문에 태그가 없습니다! – ettanany

+0

Python2는 아니기 때문에 답변을 일반화해야합니다. 또한 Python3 문서를 링크하여 답변에 Python3을 언급하고 있습니다. –

관련 문제