Maison  >  Article  >  développement back-end  >  Pourquoi est-ce que j'obtiens une erreur IndexError lors de l'accès aux éléments d'une liste avec \"ar[i]\" à l'intérieur d'une boucle \"for i in ar\" ?

Pourquoi est-ce que j'obtiens une erreur IndexError lors de l'accès aux éléments d'une liste avec \"ar[i]\" à l'intérieur d'une boucle \"for i in ar\" ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-31 21:04:02286parcourir

Why Do I Get an IndexError When Accessing Elements in a List with

Comprendre IndexError dans "ar[i]" dans "for i in ar"

Lorsque vous tentez de résumer les éléments d'une liste en utilisant une boucle for, beaucoup rencontrent une IndexError en essayant d'accéder à des éléments en utilisant "ar[i]". Cela se produit en raison d'une mauvaise compréhension du but de l'itérateur dans la boucle.

Le rôle de la variable itérateur

La variable itérateur de la boucle for (dans ce cas, "i ") représente l'élément actuel de la liste. Par exemple, étant donné une liste "ar = [1, 5, 10]", "i" contiendra séquentiellement les valeurs 1, 5 et 10. L'erreur survient lorsque "i" tente d'accéder au 5ème élément, qui se trouve en dehors de la plage d'index valide de 0 à 2 pour la liste donnée.

Construction de boucle alternative

Pour résoudre ce problème problème, la boucle doit être écrite sans indexer la liste :

for i in ar:
    theSum = theSum + i

Ce code parcourt correctement les éléments de la liste, en ajoutant chacun à "theSum".

Utilisation de Range pour indexer

Alternativement, si une indexation est requise, un range() peut être employé :

for i in range(len(ar)):
    theSum = theSum + ar[i]

Cette approche garantit que "i" prend uniquement des valeurs d'index valides pour "ar", empêchant ainsi l'IndexError.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn