Slides for 2¶

Iterare sequenze, for annidati

Riferimenti: esercizi su SoftPython: for 2: stringhe   for 3: liste

for 4: tuple   for 5: insiemi   for 6: dizionari

for 7: for annidati

  • visualizza al meglio in
  • versione stampabile: clicca qua
  • per navigare nelle slide: premere 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

Iterare stringhe¶

Esercizi for 2: stringhe

In [2]:
 
Out[2]:
Python Tutor visualization

Iterare liste con range¶

Esercizi for 3: liste

In [3]:
 
Out[3]:
Python Tutor visualization

Iterare tuple¶

Esercizi for 4: tuple

In [4]:
 
Out[4]:
Python Tutor visualization

Iterare Insiemi¶

Esercizi for 5: insiemi

In [5]:
 
Out[5]:
Python Tutor visualization

ATTENZIONE: l’ordine di iterazione negli insiemi non è prevedibile !

Iterare dizionari Esercizi for 6¶

ATTENZIONE: l’ordine di iterazione delle chiavi non è prevedibile !

In [6]:
 
Out[6]:
Python Tutor visualization

Che cosa stampa?¶

In [7]:
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?

Iterare coppie chiave valore¶

In [8]:
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 !

Iterare valori¶

In [9]:
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 !

Dizionari: aggiungere/togliere durante l'iterazione¶

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

for annidati¶

Esercizi for 7

In [10]:
 
Out[10]:
Python Tutor visualization

for annidati - problemi?¶

In [11]:
 
Out[11]:
Python Tutor visualization

II COMANDAMENTO Quando inserisci una variabile in un ciclo for
questa variabile deve essere nuova

In [12]: