Иногда нужно знать номер итерации. Я тут придумал несколько способов, хочу чтобы вы оценили их со всех сторон и показали, что сами используете в подобных случаях.
1. Самый вроде бы логичный и питоник, но тормозной, на пару порядков отстает от следующих
for i in lst:
n = lst.index(i)
...
2. Так как-то не гламурно, по Сишному, некрасивая -1 некрасиво вылезает за цикл. А в другом случае, строка относящаяся больше к заголовку цикла стоит где-то в конце. Зато работает быстрее всех.
n = -1
for i in lst:
n += 1
...
# или
n = 0
for i in lst:
...
n += 1
3. Неплохой вариант, почти не уступающий по скорости первому, но втыкать исключение в таком случае как-то толсто, а pylint вообще ошибки засчитывает (он всегда так с исключениями?).
for i in lst:
try: n += 1
except UnboundLocalError: n = 0
...
4. Не уступает по скорости, но здесь как-то все наоборот, не питониковый цикл :)
for n in range(len(lst)):
i = lst[n]
...