Obtenir le nombre de boucles dans un Python pour la boucle

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

for item in list:
    print item

Et soigneusement 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 j'ai pensé seraient 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 (tout comme le for item in list) d'obtenir le nombre d'itérations jusqu'à présent?

185
demandé sur SilentGhost 2010-07-02 02:59:27

4 réponses

La manière pythonique est d'utiliser enumerate:

for idx,item in enumerate(list):
437
répondu Nick Bastin 2018-06-21 05:09:46

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 nombre dans votre code.

57
répondu Vikram Garg 2017-10-07 12:21:29

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

0
répondu Andy 2016-03-11 13:41:36

Je connais une question plutôt ancienne mais....je suis tombé sur une autre chose, alors je donne ma chance:

[each*2 for each in [1,2,3,4,5] if each % 10 == 0])
0
répondu hephestos 2017-01-24 22:49:49