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.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Sfida
FacileCrea 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
limitcome 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