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?
La méthode pythonique consiste à utiliser enumerate
:
for idx,item in enumerate(list):
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.
Essayez d'utiliser itertools.count([n])
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])