Liste: salvare molti valori

Bentornato.
Nella lezione precedente hai imparato i cicli.
I tuoi programmi hanno imparato a ripetere lavoro con:
for
while
Molto bene.
Ora Python può ripetere operazioni automaticamente.
Può contare.
Può chiedere di nuovo.
Può calcolare totali.
Può mostrare menu.
Bellissimo.
Ma ora abbiamo un altro problema.
E se dobbiamo salvare molti valori?
Per esempio:
Una lista di prodotti.
Una lista di utenti.
Una lista di punteggi.
Una lista di città.
Una lista di task.
Una lista di password che non dovresti scrivere in chiaro.
Senza liste, potresti scrivere:
product1 = "Keyboard"
product2 = "Mouse"
product3 = "Notebook"
Funziona.
Ma diventa brutto molto velocemente.
E se hai 100 prodotti?
Scriverai davvero:
product100 = "Something"
Per favore no.
Python ha un modo migliore.
Le liste.
Le liste permettono di salvare molti valori in una sola variabile.
Molto utile.
Molto comune.
Molto Python.
Cosa imparerai
In questa lezione imparerai:
- cos’è una lista;
- come creare una lista;
- come accedere agli elementi di una lista;
- come funzionano gli indici;
- perché gli indici iniziano da 0;
- come aggiornare elementi di una lista;
- come aggiungere elementi con
append(); - come rimuovere elementi con
remove(); - come usare
len(); - come scorrere liste con i cicli;
- come combinare liste e condizioni;
- come controllare se un elemento esiste;
- errori comuni dei principianti;
- come costruire piccoli programmi basati sulle liste.
Alla fine di questa lezione i tuoi programmi potranno lavorare con collezioni di dati.
Questo è un passo molto grande.
Perché i programmi reali quasi mai lavorano con un solo valore.
Lavorano con molti valori.
Molti utenti.
Molti prodotti.
Molti task.
Molti problemi.
Molto realistico.
Molto programmazione.
Cos’è una lista?
Una lista è una collezione di valori.
Esempio:
products = ["Keyboard", "Mouse", "Notebook"]
Qui:
products
è una sola variabile.
Ma contiene tre valori:
Keyboard
Mouse
Notebook
Una lista usa le parentesi quadre:
[]
Gli elementi dentro la lista sono separati da virgole:
["Keyboard", "Mouse", "Notebook"]
Questo è molto meglio di scrivere:
product1 = "Keyboard"
product2 = "Mouse"
product3 = "Notebook"
Le liste tengono insieme valori collegati.
Come una piccola scatola.
Ma digitale.
E con meno probabilità di contenere cavi casuali.
La tua prima lista
Crea un file:
lists.py
Scrivi:
products = ["Keyboard", "Mouse", "Notebook"]
print(products)
Eseguilo:
python lists.py
oppure:
python3 lists.py
Output:
['Keyboard', 'Mouse', 'Notebook']
Python stampa tutta la lista.
Nota che Python mostra parentesi quadre e virgolette.
È normale.
Ti sta mostrando la struttura della lista.
La lista non è solo testo.
È una collezione.
Un piccolo contenitore di valori.
Molto organizzato.
Sospettosamente organizzato.
Le liste possono salvare tipi diversi
Una lista può salvare diversi tipi di valori.
Esempio:
mixed_list = ["Anna", 25, 19.99, True]
print(mixed_list)
Output:
['Anna', 25, 19.99, True]
Funziona.
Ma fai attenzione.
Solo perché Python permette qualcosa, non significa che sia sempre una buona idea.
Spesso le liste sono più chiare quando salvano cose simili.
Buono:
prices = [10.99, 25.50, 5.00]
names = ["Anna", "Marco", "Sofia"]
scores = [90, 85, 72]
Meno chiaro:
random_things = ["Anna", 42, True, "Pizza", 3.14]
Python permette libertà.
La libertà è bella.
La libertà può anche creare caos con parentesi quadre.
Usala responsabilmente.
Accedere agli elementi tramite indice
Ogni elemento in una lista ha una posizione.
Questa posizione si chiama indice.
Esempio:
products = ["Keyboard", "Mouse", "Notebook"]
print(products[0])
print(products[1])
print(products[2])
Output:
Keyboard
Mouse
Notebook
Importante:
Il primo elemento ha indice 0.
Non 1.
Python inizia a contare da zero.
Di nuovo.
Python e lo zero sono ancora grandi amici.
Quindi:
products[0] -> Keyboard
products[1] -> Mouse
products[2] -> Notebook
Questo è molto importante.
Gli indici sono il modo per accedere a elementi specifici della lista.
Gli indici iniziano da 0
Questa è una delle sorprese più comuni per i principianti.
Potresti pensare che:
products[1]
significhi il primo elemento.
Ma no.
In Python:
products[0]
significa il primo elemento.
Esempio:
cities = ["Rome", "Milan", "Naples"]
print(cities[0])
Output:
Rome
Se vuoi il secondo elemento:
print(cities[1])
Output:
Milan
All’inizio sembra strano.
Poi diventa normale.
Poi inizi a contare da zero nella tua testa.
A quel punto la programmazione ti ha cambiato.
Non necessariamente in peggio.
Probabilmente.
Ottenere l’ultimo elemento
Puoi usare indici negativi.
Esempio:
products = ["Keyboard", "Mouse", "Notebook"]
print(products[-1])
Output:
Notebook
-1 significa:
ultimo elemento
Altri esempi:
print(products[-2])
print(products[-3])
Output:
Mouse
Keyboard
Gli indici negativi contano dalla fine.
Molto utile.
Molto Python.
Molto “voglio l’ultima cosa senza contare tutto”.
A volte Python sa essere gentile.
Aggiornare un elemento della lista
Le liste possono essere modificate.
Esempio:
products = ["Keyboard", "Mouse", "Notebook"]
products[1] = "Gaming Mouse"
print(products)
Output:
['Keyboard', 'Gaming Mouse', 'Notebook']
Abbiamo modificato l’elemento all’indice 1.
Prima:
Mouse
Dopo:
Gaming Mouse
Ricorda:
l’indice 1 è il secondo elemento
Python fa esattamente quello che chiedi.
Anche se dimentichi che gli indici iniziano da zero.
Python non ti protegge dalla tua sicurezza eccessiva.
Molto educativo.
Aggiungere elementi con append()
Puoi aggiungere un elemento alla fine della lista con append().
Esempio:
products = ["Keyboard", "Mouse"]
products.append("Notebook")
print(products)
Output:
['Keyboard', 'Mouse', 'Notebook']
append() aggiunge un elemento alla fine.
È molto comune.
Esempio con input dell’utente:
products = []
product = input("Product name: ")
products.append(product)
print(products)
Se l’utente scrive:
Keyboard
Output:
['Keyboard']
Una lista vuota inizia così:
products = []
Poi puoi aggiungere elementi dopo.
Molto utile.
Molto flessibile.
Molto “costruiamo la lista mentre andiamo avanti”.
Aggiungere più elementi
Puoi chiamare append() più volte.
Esempio:
products = []
products.append("Keyboard")
products.append("Mouse")
products.append("Notebook")
print(products)
Output:
['Keyboard', 'Mouse', 'Notebook']
Questo è utile quando i valori arrivano uno alla volta.
Per esempio:
input dell’utente
dati da un file
dati da un database
dati da un’API
Le liste sono ovunque.
Sono come borse per i dati.
Ma meno caotiche.
A meno che tu non ci metta dati caotici dentro.
Allora è colpa tua.
Probabilmente.
Rimuovere elementi con remove()
Puoi rimuovere un elemento per valore con remove().
Esempio:
products = ["Keyboard", "Mouse", "Notebook"]
products.remove("Mouse")
print(products)
Output:
['Keyboard', 'Notebook']
remove() rimuove il primo elemento corrispondente.
Importante:
products.remove("Mouse")
significa:
Trova "Mouse" e rimuovilo.
Non significa:
Rimuovi l’elemento all’indice Mouse.
Perché sarebbe assurdo.
Python accetta molte cose.
Ma non quella.
remove() ha bisogno di un elemento esistente
Se provi a rimuovere un elemento che non esiste, Python dà errore.
Esempio:
products = ["Keyboard", "Mouse"]
products.remove("Notebook")
Errore:
ValueError
Perché?
Perché "Notebook" non è nella lista.
Più avanti impareremo a gestire meglio gli errori.
Per ora puoi controllare prima:
products = ["Keyboard", "Mouse"]
if "Notebook" in products:
products.remove("Notebook")
else:
print("Notebook is not in the list.")
Questo è più sicuro.
Il programma controlla prima di rimuovere.
Molto responsabile.
Molto adulto.
A differenza di un po’ di codice scritto alle 2 di notte.
Controllare se un elemento esiste
Usa in per controllare se un elemento esiste in una lista.
Esempio:
products = ["Keyboard", "Mouse", "Notebook"]
if "Mouse" in products:
print("Mouse is available.")
else:
print("Mouse is not available.")
Output:
Mouse is available.
Puoi anche controllare il contrario con not in:
if "Monitor" not in products:
print("Monitor is missing.")
Output:
Monitor is missing.
Questo è molto utile.
Userai spesso in.
Le liste e in sono buoni amici.
Come Python e lo zero.
Ma meno sospetti.
Lunghezza della lista con len()
len() ti dice quanti elementi ci sono in una lista.
Esempio:
products = ["Keyboard", "Mouse", "Notebook"]
print(len(products))
Output:
3
Questo significa che la lista ha 3 elementi.
Puoi usarlo nei messaggi:
products = ["Keyboard", "Mouse", "Notebook"]
print(f"We have {len(products)} products.")
Output:
We have 3 products.
len() è molto utile.
Funziona con le liste.
Funziona anche con le stringhe.
Esempio:
word = "Python"
print(len(word))
Output:
6
Python ama contare le cose.
Molto utile.
Energia da contabile.
Scorrere una lista con un ciclo
Liste e cicli lavorano benissimo insieme.
Esempio:
products = ["Keyboard", "Mouse", "Notebook"]
for product in products:
print(product)
Output:
Keyboard
Mouse
Notebook
Questo significa:
Per ogni product nella lista products, stampa product.
Questo è uno degli schemi più importanti in Python.
Una lista salva molti valori.
Un ciclo li processa uno alla volta.
Molto potente.
Molto comune.
Molto “ora stiamo programmando davvero”.
Output migliore con le liste
Puoi combinare cicli e f-string.
Esempio:
products = ["Keyboard", "Mouse", "Notebook"]
for product in products:
print(f"Product: {product}")
Output:
Product: Keyboard
Product: Mouse
Product: Notebook
Così è più pulito.
Puoi anche aggiungere numerazione:
products = ["Keyboard", "Mouse", "Notebook"]
number = 1
for product in products:
print(f"{number}. {product}")
number += 1
Output:
1. Keyboard
2. Mouse
3. Notebook
Funziona.
Ma Python ha uno strumento ancora più bello per numerare.
Lo impareremo presto.
Non adesso.
Un drago alla volta.
Scorrere prezzi
Le liste possono salvare anche numeri.
Esempio:
prices = [10.99, 25.50, 5.00]
for price in prices:
print(f"Price: {price:.2f}")
Output:
Price: 10.99
Price: 25.50
Price: 5.00
Puoi calcolare un totale:
prices = [10.99, 25.50, 5.00]
total = 0
for price in prices:
total += price
print(f"Total: {total:.2f}")
Output:
Total: 41.49
Questo è uno schema molto comune:
lista di numeri
ciclo sui numeri
calcolo del totale
Semplice.
Utile.
Molto reale.
Molte fatture iniziano così.
Poi arrivano le tasse.
E la musica diventa più scura.
Trovare il numero più grande
Puoi usare un ciclo per trovare il numero più grande.
Esempio:
scores = [75, 90, 62, 88]
highest_score = scores[0]
for score in scores:
if score > highest_score:
highest_score = score
print(f"Highest score: {highest_score}")
Output:
Highest score: 90
Cosa succede?
Parti assumendo che il primo punteggio sia il più alto.
Controlla ogni score.
Se uno score è più grande, aggiorna highest_score.
Stampa il risultato finale.
Questo è uno schema classico di programmazione.
Assumi un valore iniziale.
Ciclo.
Confronta.
Aggiorna.
Molto utile.
Molto algoritmico.
Sembra elegante.
Ma è solo controllo attento.
Come cercare la patata più grande in un sacco.
L’informatica è glamour.
Liste vuote
Una lista vuota non contiene elementi.
Esempio:
products = []
print(products)
print(len(products))
Output:
[]
0
Le liste vuote sono utili quando vuoi aggiungere elementi dopo.
Esempio:
products = []
products.append("Keyboard")
products.append("Mouse")
print(products)
Output:
['Keyboard', 'Mouse']
Molti programmi iniziano con una lista vuota.
Poi la riempiono.
È molto normale.
Una lista vuota non è inutile.
Sta solo aspettando dati.
Come un cestino.
Un cestino molto paziente.
Costruire una lista da input utente
Crea un file:
product_list.py
Scrivi:
products = []
product_count = int(input("How many products? "))
for number in range(1, product_count + 1):
product = input(f"Product {number}: ")
products.append(product)
print("Your products:")
for product in products:
print(f"- {product}")
Esempio di interazione:
How many products? 3
Product 1: Keyboard
Product 2: Mouse
Product 3: Notebook
Output:
Your products:
- Keyboard
- Mouse
- Notebook
Questo è un vero programma che costruisce una lista.
L’utente dà i valori.
Python li salva in una lista.
Poi Python scorre la lista e li stampa.
Molto utile.
Molto adatto ai principianti.
Molto vicino alle applicazioni reali.
Liste con condizioni
Puoi usare condizioni mentre scorri una lista.
Esempio:
prices = [10.99, 120.00, 5.50, 250.00]
for price in prices:
if price >= 100:
print(f"Expensive item: {price:.2f}")
Output:
Expensive item: 120.00
Expensive item: 250.00
Questo significa:
Passa attraverso tutti i prezzi.
Stampa solo i prezzi che sono 100 o più.
Questo è filtrare.
Filtrare significa:
Mostra solo gli elementi che rispettano una condizione.
Molto comune.
Molto utile.
Molto simile ai database.
PostgreSQL sta guardando orgoglioso dall’angolo.
Creare una nuova lista filtrata
Puoi creare una nuova lista con elementi selezionati.
Esempio:
prices = [10.99, 120.00, 5.50, 250.00]
expensive_prices = []
for price in prices:
if price >= 100:
expensive_prices.append(price)
print(expensive_prices)
Output:
[120.0, 250.0]
Cosa succede?
Inizia con una lista vuota.
Scorri tutti i prezzi.
Se il prezzo è expensive, aggiungilo a expensive_prices.
Stampa la nuova lista.
Questo è un altro schema molto comune.
Ciclo.
Controllo.
Append.
Congratulazioni.
Ora stai facendo vero data processing.
Piccoli dati.
Ma veri.
Errore comune: index out of range
Questo è sbagliato:
products = ["Keyboard", "Mouse", "Notebook"]
print(products[3])
Python dà errore:
IndexError
Perché?
Perché la lista ha 3 elementi.
I loro indici sono:
0
1
2
Non esiste indice 3.
Ricorda:
products[0] # primo elemento
products[1] # secondo elemento
products[2] # terzo elemento
L’ultimo indice è:
lunghezza - 1
Se una lista ha 3 elementi, l’ultimo indice è 2.
Python non è crudele.
Sta solo contando da zero di nuovo.
Classico Python.
Errore comune: dimenticare le virgolette
Sbagliato:
products = [Keyboard, Mouse, Notebook]
Python pensa che Keyboard, Mouse e Notebook siano nomi di variabili.
Ma non sono definite.
Corretto:
products = ["Keyboard", "Mouse", "Notebook"]
Le stringhe hanno bisogno delle virgolette.
Le variabili no.
Questa regola ritorna ancora e ancora.
Come un bug che pensavi di aver risolto.
Ma più amichevole.
Errore comune: usare append() male
Sbagliato:
products = ["Keyboard"]
products.append("Mouse", "Notebook")
Questo dà errore.
Perché?
Perché append() aggiunge un elemento alla volta.
Corretto:
products = ["Keyboard"]
products.append("Mouse")
products.append("Notebook")
Output:
['Keyboard', 'Mouse', 'Notebook']
Per ora ricorda:
append() aggiunge un elemento.
Più avanti imparerai altri modi per aggiungere più elementi.
Python ha altri strumenti.
Certo che li ha.
La cassetta degli attrezzi non finisce mai.
Errore comune: rimuovere elementi mancanti
Sbagliato:
products = ["Keyboard", "Mouse"]
products.remove("Notebook")
Questo causa:
ValueError
Perché "Notebook" non è nella lista.
Più sicuro:
products = ["Keyboard", "Mouse"]
if "Notebook" in products:
products.remove("Notebook")
else:
print("Notebook was not found.")
Fai sempre attenzione quando rimuovi elementi.
Le liste non rimuovono magicamente cose che non ci sono.
Sarebbe un problema filosofico.
E Python non è dell’umore.
Errore comune: confondere indice e valore
Guarda questa lista:
products = ["Keyboard", "Mouse", "Notebook"]
Indici:
0, 1, 2
Valori:
Keyboard, Mouse, Notebook
Questo accede tramite indice:
print(products[1])
Output:
Mouse
Questo rimuove tramite valore:
products.remove("Mouse")
Differenza importante:
indice = posizione
valore = elemento reale
Non confonderli.
L’indice è dove si trova la cosa.
Il valore è la cosa.
Molto semplice.
Molto facile da dimenticare.
Molto normale per principianti.
Mini programma: lista della spesa
Crea un file:
shopping_list.py
Scrivi:
shopping_list = []
while True:
item = input("Add item or type q to quit: ")
if item == "q":
break
shopping_list.append(item)
print("Your shopping list:")
for item in shopping_list:
print(f"- {item}")
Esempio:
Add item or type q to quit: Bread
Add item or type q to quit: Milk
Add item or type q to quit: Eggs
Add item or type q to quit: q
Output:
Your shopping list:
- Bread
- Milk
- Eggs
Questo programma usa:
- una lista vuota;
while True;input();break;append();- un ciclo
for.
Molti concetti insieme.
Ottima pratica.
Molto reale.
Molto utile se poi ti ricordi davvero di comprare le uova.
Mini programma: media dei punteggi
Crea un file:
average_score.py
Scrivi:
scores = []
score_count = int(input("How many scores? "))
for number in range(1, score_count + 1):
score = float(input(f"Score {number}: "))
scores.append(score)
total = 0
for score in scores:
total += score
average = total / len(scores)
print(f"Average score: {average:.2f}")
Esempio:
How many scores? 3
Score 1: 80
Score 2: 90
Score 3: 70
Output:
Average score: 80.00
Questo programma usa:
- creazione lista;
- input utente;
- conversione numerica;
append();- ciclo sulla lista;
- calcolo del totale;
len();- calcolo della media.
Questo è un programma serio per principianti.
Non enorme.
Ma serio.
La zuppa Python diventa di nuovo più ricca.
Ancora senza gusto USB.
Bene.
Mini programma: prezzi dei prodotti
Crea un file:
product_prices.py
Scrivi:
prices = []
product_count = int(input("How many products? "))
for number in range(1, product_count + 1):
price = float(input(f"Price for product {number}: "))
prices.append(price)
total = 0
for price in prices:
total += price
print(f"Total: {total:.2f}")
if total >= 100:
print("Big order.")
else:
print("Small order.")
Esempio:
How many products? 3
Price for product 1: 20
Price for product 2: 30
Price for product 3: 60
Output:
Total: 110.00
Big order.
Ora combiniamo:
liste
cicli
condizioni
numeri
input
output formattato
Così si costruiscono programmi reali.
Concetto dopo concetto.
Riga dopo riga.
Piccolo mattone.
Piccolo mattone.
Alla fine appare la casa.
Speriamo non infestata da errori di indentazione.
Pratica
Crea un file:
practice_lists.py
Scrivi un programma che:
- crea una lista vuota chiamata
names; - chiede all’utente quanti nomi inserire;
- salva ogni nome nella lista;
- stampa tutti i nomi;
- stampa quanti nomi sono stati aggiunti;
- controlla se
"Anna"è nella lista.
Soluzione esempio:
names = []
name_count = int(input("How many names? "))
for number in range(1, name_count + 1):
name = input(f"Name {number}: ")
names.append(name)
print("Names:")
for name in names:
print(f"- {name}")
print(f"Total names: {len(names)}")
if "Anna" in names:
print("Anna is in the list.")
else:
print("Anna is not in the list.")
Provalo.
Cambia nomi.
Prova ad aggiungere Anna.
Prova a non aggiungere Anna.
Il programma dovrebbe reagire diversamente.
Liste più condizioni.
Molto utile.
Molto reale.
Mini sfida
Crea un file:
task_manager.py
Il tuo programma deve:
- iniziare con una lista vuota chiamata
tasks; - mostrare ripetutamente un menu;
- permettere all’utente di aggiungere un task;
- permettere all’utente di mostrare tutti i task;
- permettere all’utente di uscire.
Menu:
1. Add task
2. Show tasks
q. Quit
Soluzione esempio:
tasks = []
while True:
print("----- Task Manager -----")
print("1. Add task")
print("2. Show tasks")
print("q. Quit")
choice = input("Choose an option: ").lower()
if choice == "1":
task = input("Task: ")
tasks.append(task)
print("Task added.")
elif choice == "2":
print("Tasks:")
if len(tasks) == 0:
print("No tasks yet.")
else:
for task in tasks:
print(f"- {task}")
elif choice == "q":
print("Goodbye.")
break
else:
print("Unknown option.")
Questa è una vera mini applicazione.
Usa:
- liste;
- cicli;
- condizioni;
- input;
append();len();break.
Piccolo progetto.
Grande progresso.
Così iniziano gli strumenti da terminale.
Prima di diventare web app.
Prima di diventare dashboard.
Prima che qualcuno chieda:
Can we add login?
E l’avventura diventa più lunga.
Sfida extra: rimuovere task
Migliora task_manager.py.
Aggiungi un’altra opzione al menu:
3. Remove task
Poi permetti all’utente di scrivere il nome del task e rimuoverlo.
Idea esempio:
elif choice == "3":
task = input("Task to remove: ")
if task in tasks:
tasks.remove(task)
print("Task removed.")
else:
print("Task not found.")
Questo aggiunge:
- controllo con
in; - rimozione con
remove(); - aggiornamenti più sicuri della lista.
Ora il tuo task manager può aggiungere, mostrare e rimuovere task.
Ancora piccolo.
Ma molto utile.
Una piccola app di produttività.
Cerca di non passare tre ore a migliorarla.
Oppure sì.
Anche così nascono i programmatori.
Checklist per principianti
Quando il tuo programma con liste non funziona, controlla:
Ho usato parentesi quadre per la lista?
Ho separato gli elementi con virgole?
Ho messo le stringhe tra virgolette?
Mi sono ricordato che gli indici iniziano da 0?
Sto provando ad accedere a un indice che non esiste?
Ho usato append() con un solo elemento?
Ho controllato se un elemento esiste prima di remove()?
Ho indentato correttamente il corpo del ciclo?
Ho usato len() quando mi serviva il numero di elementi?
Ho confuso indice e valore?
Le liste sono semplici all’inizio.
Poi diventano molto potenti.
La maggior parte degli errori dei principianti con le liste viene dagli indici.
Gli indici iniziano da zero.
Il primo elemento è indice 0.
L’ultimo elemento spesso è:
list_name[-1]
Ricordalo.
Il tuo tempo futuro di debugging ti ringrazierà.
Probabilmente in silenzio.
Riassunto
Oggi hai imparato:
- le liste salvano molti valori in una variabile;
- le liste usano parentesi quadre;
- gli elementi della lista sono separati da virgole;
- gli indici iniziano da 0;
- gli indici negativi contano dalla fine;
- gli elementi di una lista possono essere aggiornati;
append()aggiunge un elemento alla fine;remove()rimuove un elemento per valore;incontrolla se un elemento esiste;not incontrolla se un elemento manca;len()restituisce il numero di elementi;- le liste funzionano molto bene con i cicli;
- le liste possono salvare stringhe, numeri, booleani e altro;
- le liste vuote sono utili quando vuoi aggiungere dati dopo;
- i cicli possono costruire, leggere, filtrare e processare liste.
Questo è un passo enorme.
Ora i tuoi programmi possono salvare molti valori.
Possono processare collezioni di dati.
Possono costruire liste della spesa.
Possono calcolare totali.
Possono gestire task.
Possono lavorare con molti input.
Questo è molto più vicino alla programmazione reale.
Un valore è bello.
Molti valori sono la realtà.
Prossima lezione
Nella prossima lezione impareremo i dizionari.
I dizionari ti permettono di salvare dati usando chiavi e valori.
Invece di salvare solo:
["Anna", 25, "Rome"]
potrai scrivere:
user = {
"name": "Anna",
"age": 25,
"city": "Rome"
}
Questo è molto importante.
Le liste sono ottime per molti valori.
I dizionari sono ottimi per dati strutturati.
E i dati strutturati sono ovunque.
Utenti.
Prodotti.
Ordini.
Profili.
API.
Molto utile.
Molto Python.