[Python] Ancora sugli iteratori.
Gabriele Battaglia
iz4apu a libero.it
Mar 3 Mar 2020 14:49:39 CET
Buon pomeriggio a tutti.
Sono alle prese con il concetto che sta alla base degli iteratori.
Nel mio caso specifico si tratta di un oggetto os.scandir(base_dir) che
contiene gli oggetti di una directory ma credo andrebbe bene per
quallsiasi altro oggetto iteratore.
Fino ad ora ho compreso che un ciclo for sull'oggetto, itera i suoi
elementi costitutivi, in maniera automatica. Volendo invece richiamare
manualmente l'elemento successivo si può invocare il metodo __next__.
Esiste però un modo per sapere l'indice dell'oggetto che sto ottenendo?
Cioè, quale oggetto di quanti (tipo oggetto x su un totale di n).
E poi, è possibile spostare il puntatore che itera all'interno
dell'iterabile e punta il prossimo elemento da restituire?
Ad esempio, se eseguo un ciclo for sul mio oggetto os.scandir e poi ne
eseguo un secondo: il primo funziona, il secondo no perchè il puntatore
è già arrivato a restituire l'ultimo elemento e, immagino, vada
reinizializzato.
Anche una cosa del tipo:
numero_elementi = len(list(os.scandir(base_dir)))
Funziona ma sembra portare il puntatore/itratore sull'ultimo elemento in
quanto se eseguo poi un ciclo for su os.scandir, non ottengo nulla.
Qualcuno ha voglia di darmi un indizio per chiarirmi le idee?
--
Gabriele Battaglia, IZ4APU (Libero)
Sent from TB on Windows 10, Genus Bononiae's computer.
Maggiori informazioni sulla lista
Python