如何使用for循环同时读取特定的多行?
问题描述:
内容是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])**
请帮我:)
答
您可以创建整数值的字典要打印这些四个值的列表:
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', '
欢迎堆栈溢出。请修改您的问题以显示脚本中的代码(您可以从编辑器复制/粘贴,突出显示所有内容并按Ctrl + K)。此外,您的问题的目的不明确;你的方法究竟有什么问题? – roganjosh
你期望'在范围内(我)做什么?两个相等整数之间没有整数范围。另外,你不在循环中引用's',并且'info'没有被定义? – roganjosh