Получить цикл в цикле Python FOR

В цикле Python for, который выполняет итерацию по списку, мы можем написать:

for item in list:
    print item

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

Альтернативы, о которых я думал, будут примерно такими:

count=0
for item in list:
    print item
    count +=1
    if count % 10 == 0:
        print 'did ten'

Или:

for count in range(0,len(list)):
    print list[count]
    if count % 10 == 0:
        print 'did ten'

Есть ли лучший способ (как и for item in list) получить количество итераций до сих пор?

Ответ 1

Пути pythonic - использовать enumerate:

for idx,item in enumerate(list):

Ответ 2

Согласитесь с Ником. Вот более продуманный код.

#count=0
for idx, item in enumerate(list):
    print item
    #count +=1
    #if count % 10 == 0:
    if (idx+1) % 10 == 0:
        print 'did ten'

Я прокомментировал переменную count в вашем коде.

Ответ 3

Это также возможно с помощью zip().

for i, item in zip(range(len(my_list)), my_list):

Ответ 4

Попробуйте использовать itertools.count([n])

Ответ 5

Я знаю довольно старый вопрос, но... натолкнулся на другую вещь, поэтому я даю свой снимок:

[each*2 for each in [1,2,3,4,5] if each % 10 == 0])