Comment créer et utiliser des générateurs Python

Comment Creer Et Utiliser Des Generateurs Python



Lorsque vous travaillez en tant que développeur, vous devez souvent travailler avec de nombreuses valeurs de données insignifiantes. Le stockage de ces valeurs consomme une grande partie de la mémoire, réduisant ainsi l'efficacité de votre code. Cependant, en Python, vous pouvez utiliser des générateurs pour éviter cette perte.

Avec les générateurs, vous pouvez produire en masse les valeurs d’une séquence particulière sans les stocker complètement dans la mémoire. De plus, la fonction « générateur » crée un objet qui génère des valeurs lors de son itération. Alors, si vous souhaitez mettre la main sur les générateurs Python, ce tutoriel est fait pour vous. Ici, nous expliquerons comment créer et utiliser les générateurs Python.

Comment créer et utiliser les générateurs Python

Les générateurs Python sont utilisés pour travailler efficacement sur les séquences de données, principalement lorsqu'il s'agit de jeux de données volumineux ou presque infinis. Les avantages des générateurs Python sont :







  1. Concis: Vous pouvez définir facilement les générateurs de manière concise, ce qui améliore la lisibilité du code.
  2. Mémoire efficace : Ils génèrent simultanément une valeur unique, ce qui consomme moins de mémoire et améliore l'efficacité.
  3. Fonctions intégrées : En Python, les générateurs ont des fonctions prédéfinies comme next(), iter() et rendement pour faciliter leur travail.
  4. Fonction pause et reprise : Tout en travaillant sur des algorithmes complexes, vous pouvez utiliser la fonction « rendement » pour suspendre et reprendre le fonctionnement des générateurs.

Vous pouvez créer et utiliser des générateurs de différentes manières en Python. Nous diviserons davantage cette section pour démontrer sa mise en œuvre à l’aide de différents exemples. Tout d’abord, examinons la syntaxe de base :



déf nom_fonction ( ) :
rendement expression

Le « def » définit une fonction, et « rendement » est utilisé pour construire la fonction « générateur ». Cependant, une autre méthode permet également de créer un générateur en utilisant uniquement des expressions sur une seule ligne.



Fonction génératrice pour produire une chaîne

Définissons une fonction génératrice pour générer une valeur :





déf Générateur ( ) :
rendement 'C'est un générateur'
pour valeur dans Générateur ( ) :
imprimer ( valeur )

Lorsque nous le parcourons à l'aide d'une boucle « for », le programme génère les valeurs spécifiées que vous pouvez imprimer à l'aide de la fonction « print ».



Fonction générateur pour créer un compteur

Le programme suivant est l'exemple de la fonction générateur permettant de générer une séquence de nombres :

déf mon_générateur ( n ) :
comptoir = 0
alors que comptoir < n:
rendement comptoir
compteur + = 1
pour comptoir dans mon_générateur ( dix ) :
imprimer ( comptoir )

Par exemple, si l'entrée est 10, vous obtiendrez des valeurs de 0 à 9 lors de la compilation de ce code.

Série de Fibonacci utilisant la fonction générateur

Utilisons maintenant la série de Fibonacci qui est la série la plus basique en programmation :

déf série_fibonacci ( limite ) :
je , j = 0 , 1
alors que je < limite:
rendement je
je , j = j , je + j

un = série_fibonacci ( 6 )

imprimer ( suivant ( un ) )
imprimer ( suivant ( un ) )
imprimer ( suivant ( un ) )
imprimer ( suivant ( un ) )
imprimer ( suivant ( un ) )
imprimer ( suivant ( un ) )

Nous obtiendrons la série comme suit en exécutant le code :

Tout d’abord, créez un objet nommé « a » et appelez la fonction « générateur » avec l’entrée souhaitée comme argument.

Le mot-clé next() est un itérateur manuel. Chaque fois que nous utilisons next(a), il parcourt une valeur de « a ». Cependant, nous pouvons utiliser la boucle « for » pour imprimer toutes les valeurs de « a » à la fois, comme le montre l'exemple suivant :

Utilisation de la boucle « for » au lieu de la fonction next() :

déf série_fibonacci ( limite ) :
je , j = 0 , 1
alors que je < limite:
rendement je
je , j = j , je + j

un = série_fibonacci ( 6 )
pour valeur dans un :
imprimer ( valeur )

Le résultat de l’exécution du code ne différera pas car il s’agit d’une méthode alternative d’écriture du programme précédent :

Que sont les expressions génératrices en Python ?

Les expressions génératrices Python sont un moyen de créer les fonctions « génératrices » de manière concise à l’aide d’expressions linéaires. Voici la syntaxe simple :

( expression pour variable dans itérable si condition )

Par exemple, créez une expression génératrice pour calculer les carrés des nombres impairs de 0 à « n » lorsque « n » est la valeur d'entrée.

carrés impairs = ( x * x pour X dans gamme ( dix ) si X % 2 != 0 )
pour valeur dans carrés impairs :
imprimer ( valeur )

Le code précédent donne le résultat suivant :

Conclusion

Il s’agit des différentes méthodes pour créer et utiliser les générateurs Python. Nous avons tout expliqué sur les expressions du générateur Python. Vous devez utiliser ces expressions si vous envisagez d'utiliser des générateurs dans l'un de vos projets, car elles sont plus efficaces dans tous les aspects de la programmation.