Itérables Python : Compréhension des Séquences et des Structures de Données
Que sont les itérables ?
En Python, les itérables sont des objets pouvant être parcourus ou itérés, retournant leurs éléments un par un. Cette capacité à produire un élément à la fois les rend essentiels pour des tâches telles que la boucle, la compréhension et le dépaquetage.
Quelques exemples courants d'itérables :
- 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 "mémorisent" pas intrinsèquement leur position lors du parcours. Pour parcourir effectivement leurs éléments, ils nécessitent un itérateur.
1234567numbers = [1, 2, 3, 4] for num in numbers: print(num) title = "codefinity" for char in title: print(char)
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 à l’aide de 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 illustrant ce fonctionnement :
12345678910numbers = [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
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 mémorise sa position lors du parcours et permet d'accéder aux éléments de manière séquentielle jusqu'à la fin.
Limite des itérables
Lors du traitement de grands ensembles de données, stocker tous les éléments dans un itérable comme une liste peut s'avérer inefficace. Par exemple, si la séquence de nombres est générée dynamiquement ou trop volumineuse pour tenir en mémoire, il est nécessaire de traiter les éléments à la demande. C'est ici que les itérateurs (abordés dans le prochain chapitre) et l'évaluation paresseuse (présentée ultérieurement) deviennent essentiels.
Swipe to start coding
Écrire un script Python pour simuler le lancer d’un dé à six faces mélangé à l’aide d’itérateurs. Complétez les parties manquantes du code pour créer un itérateur, récupérer les éléments avec next(), et gérer correctement la fin de l’itération.
- Une liste
[1, 2, 3, 4, 5, 6]représente les faces d’un dé. La liste a déjà été mélangée avecrandom.shuffle(). - Convertissez la liste mélangée en itérateur afin de parcourir ses éléments un par un.
- Utilisez la fonction
next()pour simuler le lancer du dé et afficher chaque face jusqu’à ce que toutes les faces aient été utilisées. - Lorsque l’itérateur est épuisé, gérez l’exception
StopIterationpour indiquer que les lancers sont terminés.
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 3.13
Itérables Python : Compréhension des Séquences et des Structures de Données
Glissez pour afficher le menu
Que sont les itérables ?
En Python, les itérables sont des objets pouvant être parcourus ou itérés, retournant leurs éléments un par un. Cette capacité à produire un élément à la fois les rend essentiels pour des tâches telles que la boucle, la compréhension et le dépaquetage.
Quelques exemples courants d'itérables :
- 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 "mémorisent" pas intrinsèquement leur position lors du parcours. Pour parcourir effectivement leurs éléments, ils nécessitent un itérateur.
1234567numbers = [1, 2, 3, 4] for num in numbers: print(num) title = "codefinity" for char in title: print(char)
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 à l’aide de 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 illustrant ce fonctionnement :
12345678910numbers = [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
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 mémorise sa position lors du parcours et permet d'accéder aux éléments de manière séquentielle jusqu'à la fin.
Limite des itérables
Lors du traitement de grands ensembles de données, stocker tous les éléments dans un itérable comme une liste peut s'avérer inefficace. Par exemple, si la séquence de nombres est générée dynamiquement ou trop volumineuse pour tenir en mémoire, il est nécessaire de traiter les éléments à la demande. C'est ici que les itérateurs (abordés dans le prochain chapitre) et l'évaluation paresseuse (présentée ultérieurement) deviennent essentiels.
Swipe to start coding
Écrire un script Python pour simuler le lancer d’un dé à six faces mélangé à l’aide d’itérateurs. Complétez les parties manquantes du code pour créer un itérateur, récupérer les éléments avec next(), et gérer correctement la fin de l’itération.
- Une liste
[1, 2, 3, 4, 5, 6]représente les faces d’un dé. La liste a déjà été mélangée avecrandom.shuffle(). - Convertissez la liste mélangée en itérateur afin de parcourir ses éléments un par un.
- Utilisez la fonction
next()pour simuler le lancer du dé et afficher chaque face jusqu’à ce que toutes les faces aient été utilisées. - Lorsque l’itérateur est épuisé, gérez l’exception
StopIterationpour indiquer que les lancers sont terminés.
Solution
Merci pour vos commentaires !
single