Contenu du cours
Tutoriel sur les Fonctions Python
Tutoriel sur les Fonctions Python
Fonctions Génératrices
Une fonction génératrice est un type spécial de fonction qui utilise le mot-clé yield
au lieu de return
pour générer une séquence de valeurs. Lorsqu'une fonction génératrice est appelée, elle retourne un objet itérateur, qui peut être parcouru pour récupérer les valeurs une par une.
L'avantage principal des fonctions génératrices est leur efficacité mémoire. Les fonctions génératrices produisent des valeurs à la volée, au moment où elles sont nécessaires, plutôt que de générer toute la séquence à l'avance. Cela les rend particulièrement efficaces en mémoire, surtout lorsqu'on manipule de grands ensembles de données ou des séquences infinies.
Examinons l'exemple d'une génératrice simple. Cette fonction est une génératrice qui renvoie des identifiants un par un à partir de la liste donnée:
def unique_logins_from_list(login_list): # Iterate over each login in the list for login in login_list: yield login # `yield` the current login # A predefined list of available logins login_list = ["user1", "user2", "user3", "user4", "user5"] # Creating a generator instance from the login list login_generator = unique_logins_from_list(login_list) # Generate and print 5 logins, one at a time for _ in range(5): # Each call to `next()` gives the next login print(next(login_generator))
Le principe d'un générateur est qu'il permet de renvoyer des valeurs une à la fois en utilisant le mot-clé yield
, sans toutes les stocker en mémoire simultanément. Dans notre exemple, le générateur unique_logins_from_list
parcourt la liste des identifiants, renvoyant chacun lors du yield
et se mettant en pause à ce moment-là. Lorsque next()
est appelé, le générateur reprend là où il s'était arrêté, générant efficacement des valeurs sans avoir besoin de stocker l'intégralité de la liste en mémoire simultanément. Cela rend les générateurs particulièrement utiles pour gérer de grands ensembles de données ou des flux de données.
Swipe to start coding
Créez un générateur qui produit des identifiants uniques. Les identifiants peuvent être, par exemple, des chaînes de caractères au format "ID_1"
, "ID_2"
, etc. Chaque fois que vous appelez next()
, le générateur doit renvoyer un nouvel identifiant unique.
Solution
Merci pour vos commentaires !
Fonctions Génératrices
Une fonction génératrice est un type spécial de fonction qui utilise le mot-clé yield
au lieu de return
pour générer une séquence de valeurs. Lorsqu'une fonction génératrice est appelée, elle retourne un objet itérateur, qui peut être parcouru pour récupérer les valeurs une par une.
L'avantage principal des fonctions génératrices est leur efficacité mémoire. Les fonctions génératrices produisent des valeurs à la volée, au moment où elles sont nécessaires, plutôt que de générer toute la séquence à l'avance. Cela les rend particulièrement efficaces en mémoire, surtout lorsqu'on manipule de grands ensembles de données ou des séquences infinies.
Examinons l'exemple d'une génératrice simple. Cette fonction est une génératrice qui renvoie des identifiants un par un à partir de la liste donnée:
def unique_logins_from_list(login_list): # Iterate over each login in the list for login in login_list: yield login # `yield` the current login # A predefined list of available logins login_list = ["user1", "user2", "user3", "user4", "user5"] # Creating a generator instance from the login list login_generator = unique_logins_from_list(login_list) # Generate and print 5 logins, one at a time for _ in range(5): # Each call to `next()` gives the next login print(next(login_generator))
Le principe d'un générateur est qu'il permet de renvoyer des valeurs une à la fois en utilisant le mot-clé yield
, sans toutes les stocker en mémoire simultanément. Dans notre exemple, le générateur unique_logins_from_list
parcourt la liste des identifiants, renvoyant chacun lors du yield
et se mettant en pause à ce moment-là. Lorsque next()
est appelé, le générateur reprend là où il s'était arrêté, générant efficacement des valeurs sans avoir besoin de stocker l'intégralité de la liste en mémoire simultanément. Cela rend les générateurs particulièrement utiles pour gérer de grands ensembles de données ou des flux de données.
Swipe to start coding
Créez un générateur qui produit des identifiants uniques. Les identifiants peuvent être, par exemple, des chaînes de caractères au format "ID_1"
, "ID_2"
, etc. Chaque fois que vous appelez next()
, le générateur doit renvoyer un nouvel identifiant unique.
Solution
Merci pour vos commentaires !