Menu
Coddy logo textTech

Funzioni iter() e next()

Lezione 2 di 13 del corso Iteratori in Python di Coddy.

In Python, le funzioni iter() e next() sono fondamentali per lavorare con gli iteratori. Esploriamo queste funzioni e vediamo come vengono usate per creare e manipolare iteratori di base.

La funzione iter()

La funzione iter() viene usata per creare un oggetto iteratore da un iterabile. La sua sintassi di base è:

iter(iterable)

Quando viene chiamata su un iterabile, iter() restituisce un oggetto iteratore che può essere usato per accedere agli elementi dell'iterabile uno alla volta.

La funzione next()

La funzione next() viene usata per recuperare l'elemento successivo da un iteratore. La sua sintassi di base è:

next(iterator)

Ogni volta che next() viene chiamata su un iteratore, restituisce l'elemento successivo della sequenza. Se non ci sono più elementi, solleva un'eccezione StopIteration.

Usare iter() e next()

Vediamo come funzionano insieme queste funzioni:

# Crea una lista (un iterabile)
fruits = ['apple', 'banana', 'cherry']

# Crea un iteratore dalla lista
fruit_iterator = iter(fruits)

# Usa next() per ottenere gli elementi dall'iteratore
print(next(fruit_iterator))  # Output: apple
print(next(fruit_iterator))  # Output: banana
print(next(fruit_iterator))  # Output: cherry
# print(next(fruit_iterator))  # Questo solleverebbe StopIteration

In questo esempio, creiamo un iteratore fruit_iterator dalla lista fruits usando iter(). Poi usiamo next() per recuperare ogni elemento dall'iteratore.

Creare un iteratore personalizzato di base

Puoi anche creare un tuo iteratore implementando i metodi __iter__() e __next__() in una classe:

class CountUp:
    def __init__(self, start, end):
        self.current = start
        self.end = end
    
    def __iter__(self):
        return self
    
    def __next__(self):
        if self.current > self.end:
            raise StopIteration
        else:
            self.current += 1
            return self.current - 1

# Usando el iterador personalizado
counter = CountUp(1, 3)
print(next(counter))  # Salida: 1
print(next(counter))  # Salida: 2
print(next(counter))  # Salida: 3

Questo iteratore personalizzato CountUp conta da un numero iniziale a un numero finale. Il metodo __iter__() restituisce l'oggetto iteratore stesso, mentre il metodo __next__() definisce come ottenere il valore successivo.

Capire iter() e next() è fondamentale per lavorare con gli iteratori in Python e ti permette di creare e manipolare sequenze di dati in modo efficiente.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

challenge icon

Sfida

Facile

Crea un iteratore che genera una sequenza di numeri pari fino a un limite specificato. Usa le funzioni iter() e next() per implementare questo iteratore.

Ti viene fornito quanto segue:

  • Un intero limit come input

Il tuo iteratore dovrebbe:

  • Generare numeri pari a partire da 2
  • Fermarsi quando raggiunge o supera il limite specificato

Stampa ogni numero pari generato su una nuova riga.

L'input verrà fornito come una stringa che rappresenta un intero.

Provalo tu

# Leggi l'input
limit = int(input())

# TODO: Scrivi il tuo codice qui
# Implementa l'iteratore dei numeri pari usando iter() e next()

# Esempio di come stampare il risultato
# print(next_even_number)

Tutte le lezioni di Iteratori in Python

Esercitati da solo: Compilatore Python online