IndexError: list index out of range
jrm_2010
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je débute en python et je souhaiterais récupérer tous les mots d'un texte. Ensuite je retirerai les doublons de mon tableau.
Mon soucis c'est qu'actuellement j'ai un "IndexError: list index out of range" et je ne comprend pas pourquoi. Voici mon code:
Voici l'erreur entière:
File "parser.py", line 9, in <module>
mot[numMot] = mot[numMot] + lettre
IndexError: list index out of range
En gros je parcoure chaque caractères de la page et lorsque je rencontre un "espace" j'incrémente ma variable numMot qui me sert à ranger mes mots dans la liste mot[].
Merci de votre aide
EDIT: J'ai changé de méthode et j'ai préféré utilisé un bibliothèque plutôt qu'une liste. Cependant j'ai toujours une erreur:
File "parser.py", line 9, in <module>
mot[numMot] += lettre
KeyError: 0
Mon code:
Je débute en python et je souhaiterais récupérer tous les mots d'un texte. Ensuite je retirerai les doublons de mon tableau.
Mon soucis c'est qu'actuellement j'ai un "IndexError: list index out of range" et je ne comprend pas pourquoi. Voici mon code:
#!/usr/bin/env python import urllib page=urllib.urlopen('https://www.gutenberg.org/files/135/135-0.txt') strpage=page.read() numMot = 0 mot = [] for lettre in strpage: if lettre != " ": mot[numMot] = mot[numMot] + lettre else: numMot += 1
Voici l'erreur entière:
File "parser.py", line 9, in <module>
mot[numMot] = mot[numMot] + lettre
IndexError: list index out of range
En gros je parcoure chaque caractères de la page et lorsque je rencontre un "espace" j'incrémente ma variable numMot qui me sert à ranger mes mots dans la liste mot[].
Merci de votre aide
EDIT: J'ai changé de méthode et j'ai préféré utilisé un bibliothèque plutôt qu'une liste. Cependant j'ai toujours une erreur:
File "parser.py", line 9, in <module>
mot[numMot] += lettre
KeyError: 0
Mon code:
#!/usr/bin/env python import urllib page=urllib.urlopen('https://www.gutenberg.org/files/135/135-0.txt') strpage=page.read() numMot = 0 mot = {} for lettre in strpage: if lettre != " ": mot[numMot] += lettre else: numMot += 1 print numMot print mot[500]
1 réponse
Bonjour
Je ne fais pas de python, mais le message d'erreur est parlant, il n'existe pas d'enregistrement numéroté numMot, et numMot est en-dehors des index autorisés pour le tableau ou la collection.
Donc soit ta liste est mal initialisée plus probable, soit tu n'as pas créé d'instance.
Par contre, dans plein d'autres langages il existe split.
Et une petite recherche montre qu'en Python aussi.
http://www.tutorialspoint.com/python/string_split.htm
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
Je ne fais pas de python, mais le message d'erreur est parlant, il n'existe pas d'enregistrement numéroté numMot, et numMot est en-dehors des index autorisés pour le tableau ou la collection.
Donc soit ta liste est mal initialisée plus probable, soit tu n'as pas créé d'instance.
Par contre, dans plein d'autres langages il existe split.
Et une petite recherche montre qu'en Python aussi.
http://www.tutorialspoint.com/python/string_split.htm
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
jrm_2010
Merci de ta réponse et de m'avoir fait découvrir la méthode split(), j'étais en train de réinventer la roue...
Utilisateur anonyme
De rien