web-dev-qa-db-fra.com

Obtenir le nombre de boucles dans une boucle Python FOR

Dans une boucle Python for qui itère sur une liste, nous pouvons écrire:

for item in list:
    print item

et il passe soigneusement à travers tous les éléments de la liste. Existe-t-il un moyen de savoir dans la boucle combien de fois j'ai bouclé jusqu'à présent? Par exemple, je veux prendre une liste et après avoir traité dix éléments, je veux faire quelque chose avec eux.

Les alternatives auxquelles je pensais ressembleraient à quelque chose comme:

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

Ou:

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

Existe-t-il un meilleur moyen (comme le for item in list) d’obtenir le nombre d’itérations jusqu’à présent?

195
greye

La méthode pythonique consiste à utiliser enumerate :

for idx,item in enumerate(list):
475
Nick Bastin

D'accord avec Nick. Voici un code plus élaboré.

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

J'ai commenté la variable count dans votre code.

63
Vikram Garg

Essayez d'utiliser itertools.count([n])

0
Andy

Je connais une question plutôt ancienne, mais ... ayant trouvé autre chose, je donne mon coup:

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