Iterare sequenze, for annidati
Riferimenti: esercizi su SoftPython: for 2: stringhe for 3: liste
for 4: tuple for 5: insiemi for 6: dizionari
Esc
Summer School Data Science 2023 - Modulo 1 informatica: Moodle
Docente: David Leoni david.leoni@unitn.it
Esercitatore: Luca Bosotti luca.bosotti@studenti.unitn.it
ATTENZIONE: l’ordine di iterazione negli insiemi non è prevedibile !
ATTENZIONE: l’ordine di iterazione delle chiavi non è prevedibile !
diz = {'a':1,'b':2,'c':3}
for x in diz:
if x == 'c':
print(diz[x])
se lo trova: 3
se non lo trova: non stampa niente
DOMANDA: C'è un modo più efficiente di scrivere la ricerca?
for chiave, valore in diz.items():
print('Trovata chiave', chiave)
print(' con valore', diz[chiave])
Trovata chiave a con valore 1 Trovata chiave b con valore 2 Trovata chiave c con valore 3
.items()
ritorna una lista di coppie chiave/valore
ad ogni iterazione una coppia viene assegnata alle variabili chiave e valore.
ATTENZIONE: anche l’ordine di iterazione dei valori non è prevedibile !
diz = {
'bignè':5,
'brioche':8,
'krapfen':2
}
for valore in diz.values():
print('Trovato valore', valore)
Trovato valore 5 Trovato valore 8 Trovato valore 2
ATTENZIONE: anche l’ordine di iterazione dei valori non è prevedibile !
province = {'tn': 'Trento',
'mi':'Milano',
'na':'Napoli',
}
for chiave in province:
province[chiave.upper()] = province[chiave] # ATTENZIONE !
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
/tmp/ipykernel_9280/4163376861.py in <module>
4 'na':'Napoli',
5 }
----> 6 for chiave in province:
7 province[chiave.upper()] = province[chiave] # ATTENZIONE !
RuntimeError: dictionary changed size during iteration
II COMANDAMENTO Quando inserisci una variabile in un ciclo for
questa variabile deve essere nuova