2016-08-14 108 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和文件。无论如何,我想读的是这样的:

结论=如果信息[0]是1,我想读取他们开始的信息[2],信息[3],信息[4]信息[5]信息[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])** 

请帮我:)

+1

欢迎堆栈溢出。请修改您的问题以显示脚本中的代码(您可以从编辑器复制/粘贴,突出显示所有内容并按Ctrl + K)。此外,您的问题的目的不明确;你的方法究竟有什么问题? – roganjosh

+1

你期望'在范围内(我)做什么?两个相等整数之间没有整数范围。另外,你不在循环中引用'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', '