TEORIA: Sequenza ordinata e mutabile di elementi. Accesso tramite indice (0 a n-1). Indici negativi partono dal fondo. CODICE: `l = [10, 20]; l[-1]` -> 20. QUANDO SI USA: Collezioni di dati. ERRORE COMUNE: IndexError (accedere a indice fuori range).
2
New cards
Mutabilità Liste
TEORIA: A differenza di stringhe e numeri, le liste possono essere modificate in-place. CODICE: `l[0] = 99`. QUANDO SI USA: Aggiornare dati. ERRORE COMUNE: Credere che funzioni con le stringhe.
3
New cards
Metodi Liste (Append, Pop, Insert)
TEORIA: `append(x)`: aggiunge alla fine (veloce). `insert(i, x)`: inserisce a indice i (lento, sposta elementi). `pop()`: rimuove e ritorna l'ultimo. `remove(x)`: rimuove la prima occorrenza di x. CODICE: `l.append(5)`. QUANDO SI USA: Gestione dinamica.
4
New cards
Copia vs Aliasing
TEORIA: `l2 = l1` crea un ALIAS (stesso oggetto in memoria). Modificare l2 modifica l1. Per copiare serve `list(l1)` o slicing `l1[:]`. CODICE: `l2 = list(l1)`. QUANDO SI USA: Backup dati prima di modifica. ERRORE COMUNE: Modificare una lista mentre la si itera.
5
New cards
Slicing Liste
TEORIA: Estrae sottoliste. `lista[start:stop:step]`. Crea una NUOVA lista (copia). CODICE: `l[1:4]` (elementi indice 1, 2, 3). QUANDO SI USA: Estrarre porzioni dati.
6
New cards
Algoritmi Base (Max, Min, Ricerca)
TEORIA: Ricerca Lineare: scorre elementi uno a uno. Massimo/Minimo: assume il primo come max provvisorio e scorre confrontando. CODICE: `mx = l[0]; for x in l: if x > mx: mx = x`. QUANDO SI USA: Analisi dati base.
7
New cards
Liste Bidimensionali (Matrici)
TEORIA: Lista di liste. Accesso `m[riga][colonna]`. CODICE: `m = [[1,2], [3,4]]; print(m[0][1])` -> 2. QUANDO SI USA: Tabelle, griglie di gioco, immagini. ERRORE COMUNE: Creare matrice con `[[0]*3]*3` (crea 3 alias della stessa riga!).