Forum Python

Please or S’enregistrer to create posts and topics.

Parcours des éléments d'une liste provoquant une erreur d'index

Bonjour,
J'essaye de parcourir une liste après avoir supprimé son dernier élément avec pop(). Mon code est le suivant :

ma_liste = [1, 2, 3, 4, 5, 6, 7]
n = len(ma_liste)
ma_liste.pop()
for i in range(0, n):
print(ma_liste[i])

Cela me donne une erreur :
IndexError: list index out of range
Je ne comprends pas pourquoi. Pouvez-vous m'aider ? Merci !"

Bonjour Wedev
Le problème vient du fait que n est défini avant l'appel à pop(). Quand vous appelez ma_liste.pop(), la taille de la liste diminue, mais vous continuez à boucler jusqu'à l'ancienne longueur!
Pour résoudre cela, utilisez soit un recalcul de la taille, soit une boucle for-each :

ma_liste = [1, 2, 3, 4, 5, 6, 7]
ma_liste.pop()
for element in ma_liste:
    print(element)