web-dev-qa-db-fra.com

IndexError: liste des index hors limites et python

Je dis à mon programme d'imprimer la ligne 53 d'une sortie. Est-ce que cette erreur me dit qu'il n'y a pas autant de lignes et ne peut donc pas l'imprimer?

17
Tyler

Si vous avez une liste de 53 éléments, le dernier est thelist[52] car l'indexation commence à 0.

37
Alex Martelli

Oui,

Vous essayez d'accéder à un élément de la liste qui n'existe pas.

MyList = ["item1", "item2"]
print MyList[0] # Will work
print MyList[1] # Will Work
print MyList[2] # Will crash.

Avez-vous une erreur ponctuelle?

23
kjfletch

Oui. La séquence n'a pas le 54ème élément.

4
SilentGhost

C'est vrai. 'index de liste hors plage' signifie probablement que vous faites référence à n-th élément de la liste, tandis que la longueur de la liste est inférieure à n.

3
Grzegorz Oledzki

La façon dont Python fonctionne est qu'elle commence à, donc le premier numéro de votre liste serait [0]. Vous devrez imprimer [52], car l'indice de départ est 0 et donc la ligne 53 est [52].

Soustrayez 1 de la valeur et ça devrait aller. :)

2
Jack

Gardez toujours à l'esprit lorsque vous voulez surmonter cette erreur, la valeur par défaut de l'indexation et de la plage commence à 0, donc si le nombre total d'éléments est 100, alors l [99] et la plage (99) vous donnera accès jusqu'au dernier élément.

chaque fois que vous obtenez ce type d'erreur, veuillez vérifier les éléments qui se situent entre/milieu de gamme, et assurez-vous que leur index n'est pas le dernier si vous obtenez une sortie, vous avez fait une erreur parfaite comme mentionné ci-dessus.

2
Brijesh Doshi

Si vous lisez une liste à partir d'un fichier texte, vous pouvez obtenir la dernière ligne vide en tant qu'élément de liste. Vous pouvez vous en débarrasser comme ceci:

list.pop()
for i in list:
   i[12]=....
0
Ozgur AGAN