PYTHON: Iterabili e iteratori

In python i concetti iterabile e iteratori possono essere cosi descritti:

Iterabile: Oggetto o struttura dati (liste,touple etc etc) che puo essere trasformato in un iteratore, un altro esempio di iterabile sono le stringhe. l’oggetto iterabile rimane in memoria e puo’ essere usato in qualsiasi momento durante l’uso nel codice

Iteratore: Oggetto o struttura dati che puo’ essere ‘attraversato, scandito’ con i metodi __iter()__ e __next()__ e “ricoda” il suo stato mentre si attraversa. L’oggetto iteratore, una volta “attraversato” viene eliminato e quindi non e’ possibile riutilizzarlo o scorrerlo avanti e indietro. In generale un iteratore non genera i dati che ha dentro di se ma tiene traccia della loro posizione nella fonte da cui li preleva

Facciamo un esempio con una stringa che e’ un oggetto iterabile:

str = "ciao daniel"
print(str)

str_iterabile = iter(str)
print(str_iterabile)

Questo codice restituira’ :

ciao daniel

<str_iterator object at 0x7f421ca85278>

Come vediamo la prima print stampa correttamente la stringa mentre la seconda stampera’ la locazione di memoria dell’oggetto iterabile. per stampare il contenuto dell’oggetto str_iterabile dovremmo usare il metodo next()

str = "ciao daniel"
print(str)

str_iterabile = iter(str)
print(next(str_iterabile))

che restituira’:

ciao daniel
c

Quali sono i principali vantaggi nell’uso di un iteratore?

il principale vantaggio sta’ nel occupare poca memoria nel trattare molti dati, ad esempio la lettura di un file CSV tramite un iteratore legge ed elabora una riga alla volta per poi passare alla successiva ‘dimenticandosi’ dei dati precedenti

Lascia un commento

Il tuo indirizzo email non sarĂ  pubblicato. I campi obbligatori sono contrassegnati *