Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Valutazione Pigra in Python: Ottimizzazione della Memoria e delle Prestazioni | Padronanza di Iteratori e Generatori in Python
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Programmazione Strutturale in Python

bookValutazione Pigra in Python: Ottimizzazione della Memoria e delle Prestazioni

In questo capitolo viene introdotto il concetto di valutazione pigra (lazy evaluation), una tecnica in cui i dati vengono prodotti solo quando necessario, invece di essere calcolati e memorizzati in anticipo. La valutazione pigra è una caratteristica fondamentale degli iteratori ed è particolarmente utile per lavorare con grandi insiemi di dati o sequenze infinite.

Vantaggi principali:

  • Efficienza della memoria: viene generato un solo elemento alla volta;
  • Ottimizzazione delle prestazioni: il calcolo avviene solo quando richiesto;
  • Supporto per sequenze infinite: è possibile lavorare con sequenze di dimensione arbitraria senza esaurire la memoria.

Creiamo un generatore infinito di lanci di dado che produce risultati casuali su richiesta. In questo modo non sarà mai necessario memorizzare tutti i lanci in memoria, indipendentemente dal numero di lanci effettuati.

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

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 6. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Suggested prompts:

Can you explain more about how lazy evaluation works in other scenarios?

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?

bookValutazione Pigra in Python: Ottimizzazione della Memoria e delle Prestazioni

Scorri per mostrare il menu

In questo capitolo viene introdotto il concetto di valutazione pigra (lazy evaluation), una tecnica in cui i dati vengono prodotti solo quando necessario, invece di essere calcolati e memorizzati in anticipo. La valutazione pigra è una caratteristica fondamentale degli iteratori ed è particolarmente utile per lavorare con grandi insiemi di dati o sequenze infinite.

Vantaggi principali:

  • Efficienza della memoria: viene generato un solo elemento alla volta;
  • Ottimizzazione delle prestazioni: il calcolo avviene solo quando richiesto;
  • Supporto per sequenze infinite: è possibile lavorare con sequenze di dimensione arbitraria senza esaurire la memoria.

Creiamo un generatore infinito di lanci di dado che produce risultati casuali su richiesta. In questo modo non sarà mai necessario memorizzare tutti i lanci in memoria, indipendentemente dal numero di lanci effettuati.

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

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 6. Capitolo 3
some-alt