2016-08-14 1 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], 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])** 

пожалуйста, помогите мне :)

+1

Добро пожаловать на переполнение стека. Измените свой вопрос, чтобы показать код, как он есть в вашем скрипте (вы можете скопировать/вставить из своего редактора, выделить все его и нажать ctrl + k). Кроме того, цель вашего вопроса не ясна; что именно не так с вашим подходом? – roganjosh

+1

Что вы ожидаете от 'for s in range (i, i)' делать? Не существует диапазона целых чисел между двумя равными целыми числами. Кроме того, вы не ссылаетесь на '' 'в самом цикле, а' 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', ' 
Смежные вопросы