Gestire tipi misti annidati
In precedenza abbiamo usato l’espressione in per vedere se un dato è in un dizionario, ad esempio if 'cookies' in recipes_dict. Ma cosa succede se vogliamo cercare dati in una chiave del dizionario che è una lista di dizionari? In questo caso, possiamo usare un ciclo for per scorrere gli elementi nella lista annidata e operarci sopra. Inoltre, possiamo sfruttare le list comprehension per filtrare in modo efficace liste annidate di dizionari. Per esempio: [cookie for cookie in recipes["cookies"] if "chocolate chip" in cookie["name"]] restituirebbe una lista di cookie nella lista recipes che hanno "chocolate chip" nella chiave name del cookie.
Abbiamo caricato un dizionario squirrels_by_park con i nomi dei parchi come chiavi e una lista di dizionari degli scoiattoli come valori.
Questo esercizio fa parte del corso
Tipi di dati in Python
Istruzioni dell'esercizio
- Usa un ciclo for per iterare sugli scoiattoli presenti nella chiave
Tompkins Square Parkdisquirrels_by_park:- Stampa in modo sicuro le attività di ciascuno scoiattolo.
- Stampa la lista degli scoiattoli con
primary_fur_color'Cinnamon'trovati inUnion Square Parkusando una list comprehension.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Use a for loop to iterate over the squirrels in Tompkins Square Park:
for squirrel in ____["____"]:
# Safely print the activities of each squirrel or None
print(____.____("____"))
# Print the list of 'Cinnamon' primary_fur_color squirrels in Union Square Park
print([squirrel for squirrel in ____["____"] if "____" ____ ____["____"]])