Itérable en Python#

En Python, un itérable est un objet qui peut par exemple être utilisé dans une boucle for. Cela signifie que vous pouvez parcourir chaque élément de l’itérable un par un et effectuer une action sur chacun d’eux.

Voici quelques exemples d’itérables en Python :

  • Les listes

  • Les tuples

  • Les chaînes de caractères

  • Les objets range()

Voici comment utiliser une boucle for pour parcourir chaque caractère d’une chaîne de caractères :

[1]:
ma_chaine = "Bonjour"

for caractere in ma_chaine:
  print(caractere)
B
o
n
j
o
u
r

Pour savoir si un objet est itérable en Python, vous pouvez utiliser la fonction iter() intégrée. Cette fonction prend un objet en argument et retourne un objet itérateur s’il est itérable, ou une exception TypeError s’il n’est pas itérable.

Voici comment utiliser la fonction iter() pour vérifier si un objet est itérable :

[2]:
# Exemple : vérifier si une liste est itérable

ma_liste = [1, 2, 3, 4, 5]

try:
  iterateur = iter(ma_liste)
  print("ma_liste est itérable")
except TypeError:
  print("ma_liste n'est pas itérable")

# Exemple : vérifier si un entier est itérable

mon_entier = 42

try:
  iterateur = iter(mon_entier)
  print("mon_entier est itérable")
except TypeError:
  print("mon_entier n'est pas itérable")
ma_liste est itérable
mon_entier n'est pas itérable

Vous pouvez également utiliser la fonction iter() pour obtenir un itérateur à partir d’un itérable, comme ceci :

[3]:
ma_liste = [1, 2, 3, 4, 5]
iterateur = iter(ma_liste)

print(iterateur)
<list_iterator object at 0x0000027E109BDB20>

Un itérateur est un objet qui permet de parcourir un itérable de manière séquentielle. Vous pouvez ainsi utiliser l’itérateur pour parcourir l’itérable, en utilisant la fonction next() :

[4]:
ma_liste = [1, 2, 3, 4, 5]
iterateur = iter(ma_liste)

print(next(iterateur))  # affiche : 1
print(next(iterateur))  # affiche : 2
print(next(iterateur))  # affiche : 3
print(next(iterateur))  # affiche : 4
print(next(iterateur))  # affiche : 5
1
2
3
4
5

Si vous essayez d’utiliser encore la fonction next() alors qu’il n’y a plus d’autres éléments, vous obtiendrez une erreur comme dans l’exemple suivant :

[5]:
print(next(iterateur))
---------------------------------------------------------------------------
StopIteration                             Traceback (most recent call last)
Cell In[5], line 1
----> 1 print(next(iterateur))

StopIteration: