Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Fonctions Génératrices | Spécification de la Valeur de Retour de Fonction
Tutoriel sur les Fonctions Python

bookFonctions Génératrices

Une fonction génératrice est un type particulier de fonction qui utilise le mot-clé yield au lieu de return pour produire une séquence de valeurs. Lorsqu'une fonction génératrice est appelée, elle renvoie 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 réside dans leur efficacité mémoire. Les fonctions génératrices produisent les valeurs à la volée, au fur et à mesure des besoins, plutôt que de générer toute la séquence à l'avance. Cela les rend économes en mémoire, notamment lors du traitement de grands ensembles de données ou de séquences infinies.

Considérer un exemple simple de générateur. Cette fonction produit les identifiants un par un à partir de la liste donnée :

12345678910111213141516
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))
copy

Le principe d'un générateur est qu'il permet de retourner les valeurs une par une à l'aide du mot-clé yield, sans les stocker toutes en mémoire simultanément. Dans notre exemple, le générateur unique_logins_from_list parcourt la liste des identifiants, en retournant chacun d'eux via yield et en s'arrêtant à ce point. Lorsqu'on appelle next(), le générateur reprend là où il s'était arrêté, produisant efficacement les valeurs sans avoir besoin de stocker toute la liste en mémoire en même temps. Cela rend les générateurs particulièrement utiles pour traiter de grands ensembles de données ou des flux de données.

Tâche

Swipe to start coding

Générer des identifiants utilisateur uniques à l'aide d'une fonction génératrice. La fonction id_generator() doit produire en continu des identifiants tels que "ID_1", "ID_2", etc.

  1. Initialiser la variable count avec la valeur 1, car les identifiants commencent à 1.
  2. Utiliser une boucle while infinie pour générer continuellement des identifiants.
  3. Utiliser yield pour retourner l'identifiant courant au format f"ID_{count}".
  4. Incrémenter count de 1 après chaque itération.
  5. Initialiser l'objet générateur id_gen en appelant id_generator().

Solution

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 4
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Suggested prompts:

Can you explain how the generator resumes execution after each yield?

What happens if I call next() more times than there are items in the list?

Can you show a real-world scenario where using a generator is better than a regular function?

close

Awesome!

Completion rate improved to 4.35

bookFonctions Génératrices

Glissez pour afficher le menu

Une fonction génératrice est un type particulier de fonction qui utilise le mot-clé yield au lieu de return pour produire une séquence de valeurs. Lorsqu'une fonction génératrice est appelée, elle renvoie 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 réside dans leur efficacité mémoire. Les fonctions génératrices produisent les valeurs à la volée, au fur et à mesure des besoins, plutôt que de générer toute la séquence à l'avance. Cela les rend économes en mémoire, notamment lors du traitement de grands ensembles de données ou de séquences infinies.

Considérer un exemple simple de générateur. Cette fonction produit les identifiants un par un à partir de la liste donnée :

12345678910111213141516
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))
copy

Le principe d'un générateur est qu'il permet de retourner les valeurs une par une à l'aide du mot-clé yield, sans les stocker toutes en mémoire simultanément. Dans notre exemple, le générateur unique_logins_from_list parcourt la liste des identifiants, en retournant chacun d'eux via yield et en s'arrêtant à ce point. Lorsqu'on appelle next(), le générateur reprend là où il s'était arrêté, produisant efficacement les valeurs sans avoir besoin de stocker toute la liste en mémoire en même temps. Cela rend les générateurs particulièrement utiles pour traiter de grands ensembles de données ou des flux de données.

Tâche

Swipe to start coding

Générer des identifiants utilisateur uniques à l'aide d'une fonction génératrice. La fonction id_generator() doit produire en continu des identifiants tels que "ID_1", "ID_2", etc.

  1. Initialiser la variable count avec la valeur 1, car les identifiants commencent à 1.
  2. Utiliser une boucle while infinie pour générer continuellement des identifiants.
  3. Utiliser yield pour retourner l'identifiant courant au format f"ID_{count}".
  4. Incrémenter count de 1 après chaque itération.
  5. Initialiser l'objet générateur id_gen en appelant id_generator().

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 4. Chapitre 4
single

single

some-alt