nativamente no, ma puoi usare enumerate. for index, value in enumerate(iterable): ....
Il giorno mar 3 mar 2020 alle ore 14:51 Gabriele Battaglia <iz4...@libero.it> ha scritto: > 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. > _______________________________________________ > Python mailing list > Python@lists.python.it > https://lists.python.it/mailman/listinfo/python >
_______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python