Quelqu'un sait-il comment accéder à l'index lui-même pour une liste comme ceci:
ints = [8, 23, 45, 12, 78]
Quand je boucle à l'aide d'une boucle for, comment puis-je accéder à l'indice de boucle, de 1 à 5, dans ce cas?
Quelqu'un sait-il comment accéder à l'index lui-même pour une liste comme ceci:
ints = [8, 23, 45, 12, 78]
Quand je boucle à l'aide d'une boucle for, comment puis-je accéder à l'indice de boucle, de 1 à 5, dans ce cas?
L'aide supplémentaire de l'état de la variable, tels que l'indice de la variable (que vous utilisez normalement dans des langages tels que C ou PHP), est considéré comme non-pythonic.
La meilleure option est d'utiliser la fonction builtin énumérer:
for idx, val in enumerate(ints):
print idx, val
Découvrez PEP 279 pour plus d'. NB: Il fonctionne sur Python 2.x et Python 3.x
Ancienne:
for ix in range(len(ints)):
print ints[ix]
Compréhension de liste:
[ (ix, ints[ix]) for ix in range(len(ints))]
>>> ints
[1, 2, 3, 4, 5]
>>> for ix in range(len(ints)): print ints[ix]
...
1
2
3
4
5
>>> [ (ix, ints[ix]) for ix in range(len(ints))]
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5)]
>>> lc = [ (ix, ints[ix]) for ix in range(len(ints))]
>>> for tup in lc:
... print tup
...
(0, 1)
(1, 2)
(2, 3)
(3, 4)
(4, 5)
>>>
Selon cette discussion: http://bytes.com/topic/python/answers/464012-objects-list-index
Compteur de boucle d'itération
L'idiome actuel pour faire une boucle sur les indices rend l'utilisation de l'intégré dans la "gamme" de la fonction:
for i in range(len(sequence)):
# work with index i
Boucle sur les deux éléments et indices peut être réalisé soit par le vieil idiome ou à l'aide de la nouvelle 'zip' de la fonction intégrée dans[2]:
for i in range(len(sequence)):
e = sequence[i]
# work with index i and element e
ou
for i, e in zip(range(len(sequence)), sequence):
# work with index i and element e
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.