Chapitre 18. Itérables
- Par Richard Gomez
Pages 359 à 379
Citer ce chapitre
- GOMEZ, Richard,
- Gomez, Richard.
- Gomez, R.
Citer ce chapitre
- Gomez, R.
- Gomez, Richard.
- GOMEZ, Richard,
Définition 18.1. On dit qu’un objet x est itérable s’il supporte l’instruction « for k in x ».
Les objets de type interne itérables les plus courants sont les séquences, les ensembles, les dictionnaires et les objets-fichiers. Les itérateurs sont également des objets itérables, nous les étudions à la section 18.7.
Si x est itérable, il supporte l’opération « k in x ». Dans le cas d’un itérable, le calcul du booléen « k in x » suit l’algorithme ci-dessous :
Lorsqu’on exécute le programme ci-dessous :
Python applique l’algorithme ci-dessous :itérateur = iter(x).k = next(itérateur).
Si ce calcul lève StopIteration, on quitte la boucle.
On exécute le bloc d’instructions (ici c’est pass).
On retourne à la ligne 2.
On notera que chaque fois qu’une boucle s’arrête en douceur, c’est parce que l’opération next(itérateur) a levé une exception de type StopIteration.Comme on peut le voir, les fonctions internes iter et next jouent un rôle fondamental dans l’itération d’un objet.
Finalement, la boucle « for k in x: pass » équivaut à ceci :
L’expérience ci-dessous illustre ce qui vient d’être dit :
On déduit de tout ceci qu’un objet x est itérable si et seulement si :x supporte la fonction iter ;
l’objet itérateur retourné par iter(x) supporte la fonction next ;
Au bout d’un certain nombre d’étapes, next(itérateur) lève StopIteration.
Si le point numéro 3 n’est pas vérifié, x est un itérable infini (pour nous, un itérable infini n’est pas un itérable au sens strict)…
Date de mise en ligne : 23/02/2023
Ce chapitre est en accès conditionnel
Acheter cet ouvrage
35,99 €
Acheter ce chapitre
5,00 €