salut,
je commence le python depuis quelques jours, et je bloque sur un problème d'index dans une liste:
j'ai une boucle while qui va s'exécuter environ 30 fois, et dans cette boucle une des instructions est du type:
string[j] = str[k]
string est déclarée avant le while avec:
string = list()
str est également une liste déclarée avant le while.
J'ai bien vérifié l'algo, ça s'incrément bien partout comme il faut, j'ai fait plusieurs essais de print pour voir où ça bloque et:
str[k] fonctionne
l'accès à string[j] bloque, ça fait une erreur IndexError: list assignment index out of range
Ma déclaration préalable est supposée créer une liste de taille variable, donc je ne vois pas du tout ce qui pose problème.
Si quelqu'un peut m'aider à trouver d'où ça vient merci à lui, j'aimerais bien continuer à avancer dans mon projet :p
string est une liste vide, contenant aucun élément donc.
Donc:
Quelle que soit la valeur de j ça ne peut marcher puisque tu cherches à affecter un élément qui n'existe pas. Je pense que ce que tu veux c'est faire un slicing. avant de te montrer comment faire, je me permets de t'indiquer que tes variables sont très mal nommées. string est un nom de module, str est un nom de fonction intégrée. Sans parler des problème de collisions de noms, avec des variables nommées comme ça, ton code est pour le moins obfusqué.
Donc à propos du slicing, essaie ceci:
Je pense qu'à l'aide de ces exemples tu vas résoudre ton souci facilement
tu veux pas plutot remplir ta liste si c est le cas tu devrais faire comme ca
string.append(str[j])
Non, si tu lis la question...