Как модулировать одно значение с диапазоном других значений? - PullRequest
0 голосов
/ 27 марта 2019

Я заполняю список строками из текстового документа. Текстовый документ представляет собой файл журнала, включающий 108 строк (записей), которые повторяются несколько сотен раз.

Я использую цикл For для заполнения списка, однако мне нужны только первые 65 строк. Есть ли способ для цикла For пропустить строки 66-108? Я думал об использовании продолжения, как показано в приведенном ниже коде, используя по модулю номера строк, которые я хочу пропустить. Есть ли способ использовать «если по модулю» с диапазоном, или мне нужно иметь выражение «если по модулю» для каждой строки, которую я хочу пропустить?

file = open('test.txt')
lines = file.readlines()
data = list()
for line in lines:
    if loopcount % range(66,108) == 0: #
        loopcount += 1
        continue
    loopcount += 1
    data.append(line)

Ответы [ 2 ]

0 голосов
/ 27 марта 2019
file = open('test.txt')
lines = file.readlines()
data = list()
loopcount = 0
for line in lines:
  if loopcount % 108 < 65:
    data.append(line)
  loopcount += 1
0 голосов
/ 27 марта 2019

попробуйте это:

next_loop = False
file = open('test.txt')
lines = file.readlines()
data = list()
for line in lines:
    not_read = range(66,108)
    #test every num in the list
    for i in not_read:
        if loopcount % i == 0: 
            loopcount += 1
            next_loop = True
            break
    if next_loop:
        next_loop = False
        continue
    loopcount += 1
    data.append(line)
...