Meilleure réponse
Bonsoir,
Certaines langues implémentent heureusement un objet sûr accès, bien que je ne connaisse pas grand chose en Python, nous pouvons supposer que lobjet auquel vous accédez a une vérification de plage.
Ce que nous pouvons comprendre à partir de cette déclaration très simple, cest que Python crée des objets sur certains de ses principaux types de données et appelle implicitement ses accesseurs si nécessaire, transforme et vérification de plage, conversions, etc., vous avez donc une erreur logique, veuillez vérifier pourquoi vous avez accédé à un tuple hors de sa plage, apparemment le code a une erreur dans lindex et / ou la taille du tuple.
Cest une note pour indiquer que les autres langues sont plus tolérantes dans ce quelles vous permettent de faire, ce qui entraîne une soi-disant erreur dexécution, car laccès hors de portée signifie soit que vous lire des données involontaires et pourrait également écrire dans la mémoire dun autre objet et donc corrompre les données, entraînant à la fin soit une perte de données, soit une exécution ti me crash.
Cordialement
Jean-François
Réponse
En python, la liste est modifiable, donc la taille nest pas fixe.
En raison de la taille nest pas fixe
Sur la base des valeurs attribuées par vous pour une liste, la gestion de la mémoire python – crée en interne la liste (index disponible) dans le modèle de croissance de 0, 4 , 8, 16, 25, 35, 46, 58, 72, 88,… au lieu dappeler realloc () plusieurs fois.
Mais les valeurs assignées pour une liste sont inférieures à la liste ( index disponible).
Donc, pour une liste, l index disponible > index attribué.
Si vous essayez daccéder à lélément vide ou Aucun par pointant lindex disponible de la liste, alors vous obtiendrez le « Erreur dindex de liste hors de portée ».
ouvrez python et salez vos mains avec E est sous le code, pour avoir une meilleure compréhension.
>> x = list (1234)
>> x
[1, 2, 3, 4]
>> length = len (x)
4
>> x [longueur ]
Erreur dindex: index de liste hors limites
REMARQUE: Lindex de la liste commence à zéro (0).
Mais ici, la longueur de est de quatre.
Laffectation de la liste ci-dessus est comme:
x [0] = 1
x [1] = 2
x [2] = 3
x [3] = 4
x [4] =?
Si vous essayez daccéder au x [4] qui est Non Existant , lindex de liste hors de portée viendra.
Pour une meilleure compréhension de la façon dont les listes allouent la mémoire en interne, veuillez consulter ce lien Liste Python mise en œuvre .
Merci !!!