Получить количество циклов внутри цикла Python FOR - PullRequest
212 голосов
/ 02 июля 2010

В цикле 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), чтобы получить количество итераций до сих пор?

Ответы [ 4 ]

504 голосов
/ 02 июля 2010

Питонический способ заключается в использовании enumerate:

for idx,item in enumerate(list):
72 голосов
/ 16 октября 2013

Согласен с Ником. Вот более сложный код.

#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 в вашем коде.

0 голосов
/ 25 января 2017

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

[each*2 for each in [1,2,3,4,5] if each % 10 == 0])
0 голосов
/ 02 июля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...