0
votes

Boucle via une liste avec un article spécifique à l'index

Alors que je traversais certaines questions et réponses récemment, j'ai trouvé une question:

0
1
2
2


7 commentaires

Pourquoi la question est-elle en latin?


J'aimerais pouvoir trouver le duplicata ... Que se passe-t-il est que x [-1] est réaffecté avec suivant () dans chaque itération.


Je ne comprends pas ce que vous dites. J'ai écrit la question en anglais.


@dippesh Nous voyons: molesties Vero Quae Deserunt Laborum Voluptatem


je t'ai eu. va éditer la question. Merci


@Akx, mis à jour le titre.


S'il vous plaît Modifier Votre question à lier à la question initiale. Si les réponses ne vous conviennent pas, elles ne sont probablement pas appropriées pour les autres. Des éclaircissements peuvent être nécessaires sur la question initiale.


3 Réponses :


3
votes

Lorsque vous écrivez:

>>> x = [0, 1, 2, 3]
>>> for x[-1] in x:
...     print(x,x[-1])

#output
[0, 1, 2, 0] 0     # a = 0, make x[-1] = a, x becomes [0, 1, 2, 0], print x[-1] = 0
[0, 1, 2, 1] 1     # a = 1, make x[-1] = a, x becomes [0, 1, 2, 1], print x[-1] = 1
[0, 1, 2, 2] 2     # a = 2, make x[-1] = a, x becomes [0, 1, 2, 2], print x[-1] = 2
[0, 1, 2, 2] 2     # a = 2, make x[-1] = a, x becomes [0, 1, 2, 2], print x[-1] = 2


0 commentaires

3
votes

C'est une bonne question. Pour déterminer ce qui se passe, j'ai développé le code à: xxx

le résultat est xxx

comme vous pouvez le constater, Python utilise le Dernière cellule du tableau - x [-1] comme variable qui détient les valeurs, elle est itération terminée. C'est pourquoi, lorsque nous arrivons à la dernière itération, il tient la valeur «2» de l'itération précédente et que ce qu'elle imprime.


0 commentaires

3
votes

L'explication est destinée à être claire.

x [-1] pointe vers le dernier élément de x .

pour x [-1] dans x: dit simplement: itérer sur des éléments sur x et enregistrez la valeur actuelle sur x [-1]

Voici donc la séquence ce qui se passe sur chaque itération:

(avant le début de la boucle) x == [0, 1, 2, 3]

  1. x [-1] = 0 # x == [0, 1, 2, 0]
  2. x [-1] = 1 # x == [0, 1, 2, 1]
  3. x [-1] = 2 # x == [0, 1, 2, 2]
  4. x [-1] = 2 # x == [0, 1, 2, 2]

0 commentaires