2016-08-14 4 views
0

내용을 텍스트 파일에서 list[info]에 있습니다동시에 for 루프를 사용하여 특정 여러 줄을 읽는 방법?

1,1,1703,385,157,339,1,-1,-1,-1 

1,3,1293,455,83,213,1,-1,-1,-1 

1,4,259,449,101,261,1,-1,-1,-1 

1,5,1253,529,55,127,1,-1,-1,-1 

2,1,1699,383,159,341,1,-1,-1,-1 

2,3,1293,455,83,213,1,-1,-1,-1 

2,4,261,447,101,263,1,-1,-1,-1 

2,5,1253,529,55,127,1,-1,-1,-1 

3,1,1697,383,159,343,1,-1,-1,-1 

3,3,1293,455,83,213,1,-1,-1,-1 

3,4,263,447,101,263,1,-1,-1,-1 

3,5,1255,529,55,127,1,-1,-1,-1 

4,1,1695,383,159,343,1,-1,-1,-1 

4,3,1293,455,83,213,1,-1,-1,-1 

4,4,265,447,101,263,1,-1,-1,-1 

4,5,1257,529,55,127,1,-1,-1,-1 

. 
. 
. 

그들은 내가 어떤 사진을 보여려고하고이

과 같이 구성되어 있습니다. 그래서 나는 당신이 image_list와 파일에 신경 쓸 필요가 없다고 생각한다. 어쨌든, 나는 다음과 같이 읽고 싶다.

결론 = info [0]이 1이면 info {2}, info [3], info [4] info [5] 정보로 [0] 즉 1

,

인 경우 정보 [0] 1, 나는 동시에

에서 아래

1703,385,157,339 

1293,455,83,213 

259,449,101,261 

1253,529,55,127 

처럼 인쇄 할 내 코드는 다음과 같습니다.

**marks = [int(info[0])] 

     for i, images_files in zip(marks, image_list): 

      for s in range(i, i): 

        print int(info[2]), int(info[3]), int(info[4]), int(info[5])** 

16,저를 도와주세요 :)

+1

에 오신 것을 환영합니다 스택 오버플로. 질문을 수정하여 스크립트에 코드를 표시하십시오 (편집기에서 복사/붙여 넣기, 모두 강조 표시 한 다음 ctrl + k 누르기). 또한 질문의 목적이 명확하지 않습니다. 당신의 접근 방식이 정확히 무엇입니까? – roganjosh

+1

범위 (i, i)'에서 무엇을 기대합니까? 두 개의 등가 정수 사이에는 정수의 범위가 없습니다. 또한 루프 자체에서's'를 참조하지 않고'info'가 정의되지 않았습니까? – roganjosh

답변

2

출력 할 그 네 개의 값의 목록에 정수 값의 사전을 만들 수 있습니다

from collections import defaultdict 

lines = [ 
    '1,1,1703,385,157,339,1,-1,-1,-1', 
    '1,3,1293,455,83,213,1,-1,-1,-1', 
    '1,4,259,449,101,261,1,-1,-1,-1', 
    '1,5,1253,529,55,127,1,-1,-1,-1', 
    '2,1,1699,383,159,341,1,-1,-1,-1', 
    '2,3,1293,455,83,213,1,-1,-1,-1', 
    '2,4,261,447,101,263,1,-1,-1,-1', 
    '2,5,1253,529,55,127,1,-1,-1,-1', 
    '3,1,1697,383,159,343,1,-1,-1,-1', 
    '3,3,1293,455,83,213,1,-1,-1,-1', 
    '3,4,263,447,101,263,1,-1,-1,-1', 
    '3,5,1255,529,55,127,1,-1,-1,-1', 
    '4,1,1695,383,159,343,1,-1,-1,-1', 
    '4,3,1293,455,83,213,1,-1,-1,-1', 
    '4,4,265,447,101,263,1,-1,-1,-1', 
    '4,5,1257,529,55,127,1,-1,-1,-1', 
] 

line_map = defaultdict(list) 
for line in lines: 
    values = line.split(',') 
    line_map[int(values[0])].append(','.join(values[2:6])) 

print line_map[1] # ['1703,385,157,339', '1293,455,83,213', '259,449,101,261', ' 
관련 문제