Parcours des éléments d'une liste provoquant une erreur d'index
Citation de webdev le 20 novembre 2024, 17 h 41 minBonjour,
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,
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 !"
Citation de dominator le 20 novembre 2024, 18 h 43 minBonjour 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)
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)