<div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Ciao, come dice Michele in tutte le versioni di Python precedenti alla 3.3 i dizionari non sono ordinati, bisogna sempre tenerlo a mente.</div><div><br></div><div>Ad ogni modo, per ciclare le chiavi di un dizionario conoscendo il valore del prossimo ciclo puoi fare così:</div><div><br></div><div><div>from itertools import izip_longest</div><div>dizionario = {1: 'A', 2: 'B', 3: 'C'}</div><div>chiavi = list(dizionario.keys())</div><div>for chiave, prossima in izip_longest(chiavi, chiavi[1:]):<br></div><div> print '=' * 20</div><div> print 'chiave corrente: ', chiave</div><div> print 'prossima chiave: ', prossima</div><div><br></div></div><div>in due parole:</div><div> - salvi le chiavi in una lista (quindi ordinata)</div><div> - con izip_longest crei una lista di coppie come se stessi ciclando conteporaneamente le chiavi e le chiavi stesse partendo dal secondo elemento</div><div> - nell'ultimo ciclo in "chiave" ci sarà l'ultima chiave, ed in "prossima" ci sarà None</div><div><br></div><div>Se devi ciclare sia le chiavi che i valori con la stessa logica (dict.iteritems() ma sapendo i prossimi items) pruoi cambiare con questo codice:</div><div><div>cont_diz = dizionario.items()</div><div>for (chiave, valore), (prossima_chiave, prossimo_valore) in izip_longest(cont_diz, cont_diz[1:], fillvalue = (None, None)):</div><div> print '=' * 20</div><div> print 'valori correnti:'</div><div> print chiave, valore</div><div> print 'Prossimi valori:'</div><div> print prossima_chiave, prossimo_valore</div></div><div><br></div><div>..che praticamente è quello di prima ma in usando items() invece di keys() e dando a izip_longest un valore di fallback custom</div><div><br></div><div>Ciao,</div><div>Federico</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Il giorno mar 12 feb 2019 alle ore 14:01 Michele Orrù <<a href="mailto:lists@tumbolandia.net">lists@tumbolandia.net</a>> ha scritto:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 2/12/19 1:51 PM, Gabriele Battaglia wrote:<br>
> Ciao a tutti.<br>
> Se ho un ciclo che sta iterando sulle chiavi di un dizionario. Ho la <br>
> possibilità di conoscere la chiave successiva a quella a cui il ciclo è <br>
> arrivato?<br>
> Perdonate se non sono riuscito ad esprimermi bene... Se non è chiaro ci <br>
> provo con parole diverse.<br>
> Gabry.<br>
<br>
<br>
<br>
ciao<br>
non c'è nozione d'ordine sulle chiavi di un dizionario, ma puoi iterare <br>
le chiavi con<br>
for key in dict<br>
<br>
se hai bisogno di ordine ci sta ordereddict<br>
<br>
--<br>
<a href="https://www.youtube.com/watch?v=fhCLalLXHP4" rel="noreferrer" target="_blank">https://www.youtube.com/watch?v=fhCLalLXHP4</a><br>
_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it" target="_blank">Python@lists.python.it</a><br>
<a href="https://lists.python.it/mailman/listinfo/python" rel="noreferrer" target="_blank">https://lists.python.it/mailman/listinfo/python</a><br>
</blockquote></div></div></div></div>