Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Itérables Python | Itérateurs et Générateurs
Concepts Avancés de Python
course content

Contenu du cours

Concepts Avancés de Python

Concepts Avancés de Python

1. Modules et Imports
2. Gestion des Erreurs
3. Gestion des Fichiers
4. Cadre Pytest
5. Cadre Unittest
6. Itérateurs et Générateurs

book
Itérables Python

Qu'est-ce qu'un Itérable ?

En Python, les itérables sont des objets qui peuvent être parcourus ou itérés, retournant leurs éléments un par un. Cette capacité à produire un élément à la fois les rend inestimables dans des tâches telles que la boucle, la compréhension et le déballage.

Quelques itérables courants incluent :

  • Structures de données : listes, tuples, dictionnaires, ensembles ;
  • Chaînes de caractères : produisent leurs caractères un par un ;
  • Objets personnalisés : rendus itérables en implémentant la méthode __iter__.

Une caractéristique clé des itérables est qu'ils ne "se souviennent" pas intrinsèquement de leur position lors du parcours. Pour réellement parcourir leurs éléments, ils nécessitent un itérateur.

1234567
numbers = [1, 2, 3, 4] for num in numbers: print(num) title = "codefinity" for char in title: print(char)
copy

La boucle for parcourt automatiquement les éléments de l'itérable et les traite un par un.

Lorsque Python traite un itérable, il convertit l'objet en un itérateur en utilisant la fonction iter(). En interne, iter() appelle la méthode __iter__() de l'objet. De même, la fonction next() récupère la valeur suivante de l'itérateur en appelant sa méthode __next__().

Voici un exemple qui démontre comment cela fonctionne :

12345678910
numbers = [1, 2, 3, 4] # Converting the list to an iterator numbers_iterator = iter(numbers) # Accessing elements one at a time using `next()` print(next(numbers_iterator)) # Output: 1 print(next(numbers_iterator)) # Output: 2 print(next(numbers_iterator)) # Output: 3 print(next(numbers_iterator)) # Output: 4 print(next(numbers_iterator)) # Output: StopIteration
copy

Itérables vs. Itérateurs

Bien que tous les itérateurs soient des itérables, tous les itérables ne sont pas des itérateurs. Un itérateur se souvient de sa position lors du parcours et permet d'accéder aux éléments séquentiellement jusqu'à ce que la fin soit atteinte.

Limitation des Itérables

Lorsqu'on travaille avec de grands ensembles de données, stocker tous les éléments dans un itérable comme une liste peut être inefficace. Par exemple, si la séquence de nombres est générée dynamiquement ou est trop grande pour tenir en mémoire, nous avons besoin d'un moyen de traiter les éléments à la demande. C'est là que les itérateurs (abordés dans le prochain chapitre) et l'évaluation paresseuse (introduite plus tard) deviennent cruciaux.

Tâche

Swipe to start coding

Écrivez un script Python pour simuler le lancer d'un dé à six faces mélangé en utilisant des itérateurs. Complétez les parties manquantes du code pour créer un itérateur, récupérer les éléments en utilisant next(), et gérer la fin de l'itération de manière élégante.

  1. Une liste [1, 2, 3, 4, 5, 6] représente les faces d'un dé. La liste a déjà été mélangée en utilisant random.shuffle().
  2. Convertissez la liste mélangée en un itérateur pour pouvoir parcourir ses éléments un par un.
  3. Utilisez la fonction next() pour simuler le lancer du dé et imprimez chaque face jusqu'à ce que toutes les faces soient utilisées.
  4. Lorsque l'itérateur est épuisé, gérez l'exception StopIteration pour indiquer que les lancers sont terminés.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 6. Chapitre 1
toggle bottom row

book
Itérables Python

Qu'est-ce qu'un Itérable ?

En Python, les itérables sont des objets qui peuvent être parcourus ou itérés, retournant leurs éléments un par un. Cette capacité à produire un élément à la fois les rend inestimables dans des tâches telles que la boucle, la compréhension et le déballage.

Quelques itérables courants incluent :

  • Structures de données : listes, tuples, dictionnaires, ensembles ;
  • Chaînes de caractères : produisent leurs caractères un par un ;
  • Objets personnalisés : rendus itérables en implémentant la méthode __iter__.

Une caractéristique clé des itérables est qu'ils ne "se souviennent" pas intrinsèquement de leur position lors du parcours. Pour réellement parcourir leurs éléments, ils nécessitent un itérateur.

1234567
numbers = [1, 2, 3, 4] for num in numbers: print(num) title = "codefinity" for char in title: print(char)
copy

La boucle for parcourt automatiquement les éléments de l'itérable et les traite un par un.

Lorsque Python traite un itérable, il convertit l'objet en un itérateur en utilisant la fonction iter(). En interne, iter() appelle la méthode __iter__() de l'objet. De même, la fonction next() récupère la valeur suivante de l'itérateur en appelant sa méthode __next__().

Voici un exemple qui démontre comment cela fonctionne :

12345678910
numbers = [1, 2, 3, 4] # Converting the list to an iterator numbers_iterator = iter(numbers) # Accessing elements one at a time using `next()` print(next(numbers_iterator)) # Output: 1 print(next(numbers_iterator)) # Output: 2 print(next(numbers_iterator)) # Output: 3 print(next(numbers_iterator)) # Output: 4 print(next(numbers_iterator)) # Output: StopIteration
copy

Itérables vs. Itérateurs

Bien que tous les itérateurs soient des itérables, tous les itérables ne sont pas des itérateurs. Un itérateur se souvient de sa position lors du parcours et permet d'accéder aux éléments séquentiellement jusqu'à ce que la fin soit atteinte.

Limitation des Itérables

Lorsqu'on travaille avec de grands ensembles de données, stocker tous les éléments dans un itérable comme une liste peut être inefficace. Par exemple, si la séquence de nombres est générée dynamiquement ou est trop grande pour tenir en mémoire, nous avons besoin d'un moyen de traiter les éléments à la demande. C'est là que les itérateurs (abordés dans le prochain chapitre) et l'évaluation paresseuse (introduite plus tard) deviennent cruciaux.

Tâche

Swipe to start coding

Écrivez un script Python pour simuler le lancer d'un dé à six faces mélangé en utilisant des itérateurs. Complétez les parties manquantes du code pour créer un itérateur, récupérer les éléments en utilisant next(), et gérer la fin de l'itération de manière élégante.

  1. Une liste [1, 2, 3, 4, 5, 6] représente les faces d'un dé. La liste a déjà été mélangée en utilisant random.shuffle().
  2. Convertissez la liste mélangée en un itérateur pour pouvoir parcourir ses éléments un par un.
  3. Utilisez la fonction next() pour simuler le lancer du dé et imprimez chaque face jusqu'à ce que toutes les faces soient utilisées.
  4. Lorsque l'itérateur est épuisé, gérez l'exception StopIteration pour indiquer que les lancers sont terminés.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 6. Chapitre 1
Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
We're sorry to hear that something went wrong. What happened?
some-alt