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

bookÉvaluation Paresseuse

Dans ce chapitre, nous introduisons le concept de l'évaluation paresseuse, une technique où les données sont produites uniquement lorsque nécessaire plutôt que d'être calculées et stockées à l'avance. L'évaluation paresseuse est une caractéristique clé des itérateurs et est particulièrement utile pour travailler avec de grands ensembles de données ou des séquences infinies.

Principaux avantages :

  • Efficacité mémoire : un seul élément est généré à la fois ;
  • Optimisation des performances : le calcul se produit uniquement lorsque nécessaire ;
  • Support pour les séquences infinies : vous pouvez travailler avec des séquences de taille arbitraire sans manquer de mémoire.

Créons un lanceur de dés infini qui génère des lancers aléatoires à la demande. Cela garantit que nous n'avons jamais besoin de stocker tous les lancers en mémoire, peu importe combien de lancers nous effectuons.

12345678910111213141516
import random # Infinite dice roller class InfiniteDiceRoller: def __iter__(self): return self def __next__(self): return random.randint(1, 6) # Using the infinite dice roller dice_roller = InfiniteDiceRoller() for i, roll in enumerate(dice_roller): if i >= 10: # Stop after 10 rolls break print(f"Roll {i + 1}: {roll}")
copy

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 6. Chapitre 3

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 more about how lazy evaluation works in other contexts?

What would happen if we removed the break statement from the loop?

Can you show how to modify the dice roller to simulate a die with a different number of sides?

Awesome!

Completion rate improved to 3.13

bookÉvaluation Paresseuse

Glissez pour afficher le menu

Dans ce chapitre, nous introduisons le concept de l'évaluation paresseuse, une technique où les données sont produites uniquement lorsque nécessaire plutôt que d'être calculées et stockées à l'avance. L'évaluation paresseuse est une caractéristique clé des itérateurs et est particulièrement utile pour travailler avec de grands ensembles de données ou des séquences infinies.

Principaux avantages :

  • Efficacité mémoire : un seul élément est généré à la fois ;
  • Optimisation des performances : le calcul se produit uniquement lorsque nécessaire ;
  • Support pour les séquences infinies : vous pouvez travailler avec des séquences de taille arbitraire sans manquer de mémoire.

Créons un lanceur de dés infini qui génère des lancers aléatoires à la demande. Cela garantit que nous n'avons jamais besoin de stocker tous les lancers en mémoire, peu importe combien de lancers nous effectuons.

12345678910111213141516
import random # Infinite dice roller class InfiniteDiceRoller: def __iter__(self): return self def __next__(self): return random.randint(1, 6) # Using the infinite dice roller dice_roller = InfiniteDiceRoller() for i, roll in enumerate(dice_roller): if i >= 10: # Stop after 10 rolls break print(f"Roll {i + 1}: {roll}")
copy

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 6. Chapitre 3
some-alt