Выполнение конструкции if со второго цикла

у меня есть задача, в которой используется конструкция if и я хочу сделать так, чтобы эта конструкция начала проверятся только со второго цикла.

n = 0
for i in range (...):
    n += 1
    if n != 1 and ...
    elif n != 1 and ...

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


Ответы (4 шт):

Автор решения: MBo
for i in range (1, stopvalue):
   ...
→ Ссылка
Автор решения: Qwertiy

Если у тебя уже

for i in range(...):

то проверка делается через

if i:

Если там не range, то можно использовать

for i,x in enumerate(...)
→ Ссылка
Автор решения: proffessor17

Самый простой способ - с помощью оператора continue.Код с условиями if просто не будет выполнен в первый раз.

n = 0
for i in range(...):
    n += 1
    if n == 1:
        continue
→ Ссылка
Автор решения: Vitalizzare

Создав вокруг последовательности итератор, мы получим возможность управлять выдачей елементов. В частности, применив к нему перед циклом функцию next, мы как-бы пропустим первый ход, после чего обрабатываем в цикле оставшуюся часть, зная, что первый шаг сделан.

Пример из жизни - у вас есть текстовый файл данных с комментарием в первой строке. Файловый объект - это уже итератор, поставляющий строки. Поэтому, применив к нему перед циклом обработки строк функцию next, мы продвинем его на одну строку вперед. А значит в цикле не нужно проверять, является ли строка первой:

from io import StringIO    # эмулируем работу с файлом

dummy_data = '''\
# Комментарий к файлу в первой строке
1 2 3 4 
5 6 7
8 9
'''

with StringIO(dummy_data) as file:
    # Пропускаем первую строку с комментарием
    next(file, None)
    # Обрабатываем остальные строки
    data = []
    for line in file:
        data.extend(map(int, line.split()))
    print(data)

# [1, 2, 3, 4, 5, 6, 7, 8, 9]

В примере из вопроса делаем то же самое, но с учетом, что источник данных может не быть итератором, и тогда к нему нужно применить функцию iter:

items = ...

# обернуть данные в итератор
iter_items = iter(items)

# пропустить первый шаг
next(iter_items, None)

# дальше при проверке условий 
# дополнительная проверка шага не нужна
for i in iter_items:
    if ...:
        ...
    elif ...:
        ...
→ Ссылка