[Python] Chiarimento sugli iteratori

Riccardo Magliocchetti riccardo.magliocchetti a gmail.com
Ven 17 Set 2021 17:17:29 CEST


On 17/09/21 17:06, Valerio Pachera wrote:
> Il caso simil reale è questo
> 
> ho una funzione che legge un file, e potrei ritornare una grande lista.
> Al posto di ritornare la lista, faccio lo yield del dato estratto, al
> fine di risparmiare RAM.
> 
> def parsefile(path):
>      # tante belle cose
>      yield x
> 
> Ho poi altre due funzioni che generano delle stringhe.
> Come argomento potrei passare il listone, ma passo l'iteratore
> 
> 
> data = parsefile(path):
> 
> def tampastinga1(data):
>       # prendi il necessario da data
>       return stinga
> 
> def stampastringa2(data):
>      # prendi il necessario da data
>      return stringa
> 
> Ebbene, la seconda funzione non ritorna nulla.

"al fine di risparmiare RAM" è proprio il motivo per cui quei dati una volta 
consumati non sono più disponibili. Se devi ripassarci ti tocca metterli da 
qualche parte :)


-- 
Riccardo Magliocchetti
@rmistaken

http://menodizero.it


Maggiori informazioni sulla lista Python