2015-07-10 2 views
0

Есть одна вещь, которую я действительно не понимаю с Python. Когда я создаю массив, добавьте в него данные и попытаться напечатать, витки повторяются слишком много раз, например:Python: печатать итерации слишком много раз

with open("file.txt", "r") as fh1: 
    array = [] 
     counter = 0 
     for line in fh1: 
      line = line.rstrip("\n") 
      counter +=1 
      array.append((line, counter)) 
      for line, counter in (array): 
       print line, ":", counter 

file.txt:

a 
b 
... 
y 
z 

выхода сценария по какой-то причине дублируя несколько раз. Я получаю эту проблему с каждым массивом, который я создаю, и пытаюсь напечатать. Я что-то не понимаю?

+7

'for line, counter in (array):': 'array' содержит все строки до сих пор. Для каждой новой строки вы печатаете каждую предыдущую строку. Вместо этого вы хотите, чтобы чересчур переместился через массив вне цикла чтения? – dhke

+0

О, Боже ... Я полностью забыл об этой конкретной вещи с Python. Спасибо. –

ответ

3

Он печатается несколько раз из-за того, что for line, counter in (array): находится с в другой цикл

На самом деле это будет печататься для каждой строки в файле, так как для цикла перебирает строки файла

with open("file.txt", "r") as fh1: 
    array = [] 
    counter = 0 
    for line in fh1: 
     line = line.rstrip("\n") 
     counter +=1 
     array.append((line, counter)) 
for line, counter in (array): 
    print line, ":", counter 
+0

или: Обратите внимание на отступ – WorldSEnder

+0

@WorldSEnder да без отступов python ничего: p – The6thSense

+0

Спасибо, я полностью забыл о расстоянии в Python. –

Смежные вопросы