Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Évaluation Paresseuse en Python : Optimisation de la Mémoire et des Performances | Itérateurs et Générateurs
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Concepts Avancés de Python

bookÉvaluation Paresseuse en Python : Optimisation de la Mémoire et des Performances

Dans ce chapitre, nous présentons le concept d’évaluation paresseuse (lazy evaluation), une technique où les données sont produites uniquement lorsqu’elles sont nécessaires, plutôt que d’être calculées et stockées à l’avance. L’évaluation paresseuse est une caractéristique essentielle des itérateurs et s’avère particulièrement utile pour manipuler 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 s’effectue uniquement en cas de besoin ;
  • Prise en charge des séquences infinies : possibilité de travailler avec des séquences de taille arbitraire sans épuiser la 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, quel que soit leur nombre.

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

bookÉvaluation Paresseuse en Python : Optimisation de la Mémoire et des Performances

Glissez pour afficher le menu

Dans ce chapitre, nous présentons le concept d’évaluation paresseuse (lazy evaluation), une technique où les données sont produites uniquement lorsqu’elles sont nécessaires, plutôt que d’être calculées et stockées à l’avance. L’évaluation paresseuse est une caractéristique essentielle des itérateurs et s’avère particulièrement utile pour manipuler 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 s’effectue uniquement en cas de besoin ;
  • Prise en charge des séquences infinies : possibilité de travailler avec des séquences de taille arbitraire sans épuiser la 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, quel que soit leur nombre.

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