Ответ 1
Пути pythonic - использовать enumerate
:
for idx,item in enumerate(list):
В цикле 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
) получить количество итераций до сих пор?
Пути pythonic - использовать enumerate
:
for idx,item in enumerate(list):
Согласитесь с Ником. Вот более продуманный код.
#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 в вашем коде.
Это также возможно с помощью zip().
for i, item in zip(range(len(my_list)), my_list):
Попробуйте использовать itertools.count([n])
Я знаю довольно старый вопрос, но... натолкнулся на другую вещь, поэтому я даю свой снимок:
[each*2 for each in [1,2,3,4,5] if each % 10 == 0])