🐍 Liste e Strutture Dati in Python
🔹 1. Le liste in Python: cos’è una lista?
Una lista è una raccolta ordinata di elementi.
In C++ useresti spesso un array:
int numeri[5] = {1, 2, 3, 4, 5};
In Python:
numeri = [1, 2, 3, 4, 5]
👉 Le liste possono contenere:
● numeri
● stringhe
● valori booleani
● anche tipi diversi (anche se è meglio evitarlo)
🔹 2. Accesso agli elementi
Ogni elemento ha un indice (si parte da 0).
numeri = [10, 20, 30, 40]
print(numeri[0]) # 10
print(numeri[2]) # 30
⚠️ Attenzione:
L’indice parte sempre da 0, come in C++.
🔹 3. Modificare una lista
numeri = [10, 20, 30]
numeri[1] = 99
print(numeri)
Output:
[10, 99, 30]
🔹 4. Scorrere una lista
✔️ Metodo 1: con indice
numeri = [5, 8, 2, 9]
for i in range(len(numeri)):
print("Posizione", i, "valore", numeri[i])
👉 len() restituisce la lunghezza della lista.
✔️ Metodo 2: direttamente sugli elementi
numeri = [5, 8, 2, 9]
for n in numeri:
print(n)
👉 Questo è il modo più “pythonico”.
🔹 5. Aggiungere e togliere elementi
Aggiungere
numeri = [1, 2, 3]
[Link](4)
print(numeri)
Togliere
[Link](2)
print(numeri)
🔹 6. Liste bidimensionali (matrici)
Una lista bidimensionale è una lista di liste.
Esempio: tabella voti di 3 studenti in 2 materie
voti = [
[7, 8],
[6, 9],
[8, 7]
]
👉 È come una tabella:
Studente Matematica Informatica
1 7 8
2 6 9
3 8 7
🔹 7. Accesso in lista bidimensionale
print(voti[0][0]) # 7
print(voti[1][1]) # 9
👉 Primo indice = riga
👉 Secondo indice = colonna
🔹 8. Scorrere una matrice
voti = [
[7, 8],
[6, 9],
[8, 7]
]
for riga in voti:
for voto in riga:
print(voto)
Con indici (utile per capire righe/colonne)
for i in range(len(voti)):
for j in range(len(voti[i])):
print("Riga", i, "Colonna", j, "Valore", voti[i][j])
🔹 9. L’equivalente delle struct in Python
In C++:
struct Studente {
string nome;
int voto;
};
In Python possiamo usare un dizionario:
studente = {
"nome": "Luca",
"voto": 8
}
Accesso ai dati:
print(studente["nome"])
print(studente["voto"])
🔹 10. Lista di “struct” (molto utile!)
Possiamo avere una lista di studenti:
studenti = [
{"nome": "Luca", "voto": 8},
{"nome": "Anna", "voto": 9},
{"nome": "Marco", "voto": 7}
]
Scorrimento:
for s in studenti:
print(s["nome"], "-", s["voto"])
👉 Questo è molto usato nei programmi reali.
🧪 Esercizi
🔸 Esercizio 1 – Somma lista
Crea una lista di 5 numeri e calcola la somma totale.
🔸 Esercizio 2 – Numero massimo
Leggi 5 numeri da tastiera e salvali in una lista.
Stampa il maggiore.
🔸 Esercizio 3 – Matrice
Crea una matrice 3x3 e stampa tutti i valori.
🔸 Esercizio 4 – Registro studenti
Crea una lista di studenti con:
● nome
● voto
Stampa solo gli studenti con voto >= 6.
🔸 Esercizio 5 – Media voti
Con una lista di studenti:
● calcola la media della classe
● stampa il nome dello studente col voto più alto