2009-10-27 4 views
0

이 코드 섹션은 텍스트 파일의 두 번째 열 값을 포함하는 목록을 작성하지만 두 번째 문자를 사용합니다. 아무도 내 문제가 뭔지 알아?python line.split 의미 론적 오류 fromtext 파일

TEXTFILE 
opi 60 
kid 60 
pou 60 
ret 60 
kai 60 
bob 100 

for line in lst:       
    line.split(' ') 
    fire.append(int(line[1])) 
    print(line[1]) 

답변

0
line.split(' ') 

귀하의 실수는,이 line을 분할하지 않는 split하지만 선 분할을 반환합니다. 그래서 그 대신 당신이해야 할 일을

columns = line.split(' ') 

가 대신

당신은 아마 이런 일을하고 싶지
1

이 열을 사용하는 것입니다 :

mylist = [] 

for line in file: 
    firstcolval, secondcolval = line.split() 
    mylist.append(int(firstcolval)) 
1

이것은 또한 작동합니다

import csv 
for line in csv.reader(open("datafile"), delimiter=" "):       
    fire.append(int(line[1])) 
    print(line[1]) 

또는

from operator import itemgetter 
import csv 
f=csv.reader(open("datafile"),delimiter=' ') 
fire+=[int(x[1]) for x in f] 
0

간단한 한 개의 라이너로 할 수 있습니다.

 
for line in lst: 
    lc = line.split(' ') 
    fire.append(int(lc[1])) 
    print lc[1] 

을하지만 누군가가 이미 제안했다, 당신은 그 한 줄에 수행 할 수 있습니다

fire = [int(b) for a, b in line.split(" ") for line in lst] 
0

좋아, 분할 (목록은 적어도 하나 개의 원소를 포함하는) 새로운 객체를 생성하기 때문에, 그래서 당신은 무엇을해야 목록 이해와 :

같이 판독
 
newlist = [int(current[1]) for current in line.split(" ") for line in lst] 

: 어느 라인 LST 우리가 공백으로 라인을 스플릿 및 (현재 [1]) int로 변환하는 O 스플릿 선에서 인덱스 하나 요소를 추가 새로운 목록.

관련 문제