Liste
Cosa sono le liste?
Section titled “Cosa sono le liste?”Immagina un foglio con una lista della spesa: ci scrivi sopra gli elementi uno sotto l’altro, puoi aggiungerne di nuovi, cancellarne, cambiarli. In Python le liste funzionano esattamente così.
Una lista è una raccolta ordinata di elementi. Puoi metterci qualsiasi tipo di valore, anche misti, e puoi modificarla liberamente dopo averla creata.
Creare una lista
Section titled “Creare una lista”Le liste si scrivono con le parentesi quadre [], con gli elementi separati da virgole:
frutta = ["mela", "banana", "ciliegia"]numeri = [1, 2, 3, 4, 5]mista = [1, "ciao", True, 3.14] # anche tipi diversi vanno benevuota = [] # lista senza elementiAccedere agli elementi
Section titled “Accedere agli elementi”Ogni elemento ha una posizione (chiamata indice) che parte da 0, non da 1. È una convenzione tipica della programmazione.
frutta = ["mela", "banana", "ciliegia"]print(frutta[0]) # mela — il primo elementoprint(frutta[1]) # banana — il secondoprint(frutta[-1]) # ciliegia — l'ultimo (conta dalla fine)print(frutta[-2]) # banana — il penultimoEstrarre una parte della lista (slicing)
Section titled “Estrarre una parte della lista (slicing)”Puoi estrarre una “fetta” della lista indicando da dove a dove:
numeri = [0, 1, 2, 3, 4, 5]print(numeri[1:4]) # [1, 2, 3] — dalla posizione 1 alla 3 (4 esclusa)print(numeri[:3]) # [0, 1, 2] — dall'inizio alla posizione 2print(numeri[3:]) # [3, 4, 5] — dalla posizione 3 alla fineprint(numeri[::-1]) # [5, 4, 3, 2, 1, 0] — la lista al contrarioModificare gli elementi
Section titled “Modificare gli elementi”A differenza delle tuple (che vedremo dopo), le liste si possono modificare:
frutta = ["mela", "banana", "ciliegia"]frutta[1] = "kiwi" # sostituisce "banana" con "kiwi"print(frutta) # ['mela', 'kiwi', 'ciliegia']Aggiungere elementi
Section titled “Aggiungere elementi”frutta = ["mela", "banana"]
frutta.append("ciliegia") # aggiunge alla fineprint(frutta) # ['mela', 'banana', 'ciliegia']
frutta.insert(1, "kiwi") # inserisce nella posizione 1print(frutta) # ['mela', 'kiwi', 'banana', 'ciliegia']
altra = ["uva", "pesca"]frutta.extend(altra) # aggiunge tutti gli elementi di un'altra listaprint(frutta) # ['mela', 'kiwi', 'banana', 'ciliegia', 'uva', 'pesca']Rimuovere elementi
Section titled “Rimuovere elementi”frutta = ["mela", "banana", "ciliegia", "banana"]
frutta.remove("banana") # rimuove la prima "banana" che trovaprint(frutta) # ['mela', 'ciliegia', 'banana']
frutta.pop() # rimuove e restituisce l'ultimo elementoprint(frutta) # ['mela', 'ciliegia']
frutta = ["mela", "banana", "ciliegia"]del frutta[1] # elimina l'elemento in posizione 1print(frutta) # ['mela', 'ciliegia']
frutta.clear() # svuota completamente la listaprint(frutta) # []Cercare e contare
Section titled “Cercare e contare”numeri = [1, 2, 3, 2, 4, 2]print(numeri.count(2)) # 3 — quante volte compare il numero 2print(numeri.index(3)) # 2 — in quale posizione si trova il numero 3print(len(numeri)) # 6 — quanti elementi ha la listaOrdinare una lista
Section titled “Ordinare una lista”numeri = [3, 1, 4, 1, 5, 9, 2]
numeri.sort() # ordina la lista (modifica l'originale)print(numeri) # [1, 1, 2, 3, 4, 5, 9]
numeri.sort(reverse=True) # ordine decrescenteprint(numeri) # [9, 5, 4, 3, 2, 1, 1]
# sorted() non modifica l'originale, restituisce una nuova listaoriginale = [3, 1, 4, 1, 5]ordinata = sorted(originale)print(originale) # [3, 1, 4, 1, 5] — invariataprint(ordinata) # [1, 1, 3, 4, 5] — nuova lista ordinataCopiare una lista
Section titled “Copiare una lista”Attenzione: se scrivi copia = originale, non stai copiando la lista, stai solo creando un secondo nome per la stessa lista! Usa .copy():
originale = [1, 2, 3]copia = originale.copy() # copia vera e propriacopia.append(4)
print(originale) # [1, 2, 3] — non cambiataprint(copia) # [1, 2, 3, 4] — modificataListe di liste
Section titled “Liste di liste”Puoi mettere liste dentro altre liste, utile per rappresentare griglie o tabelle:
matrice = [ [1, 2, 3], [4, 5, 6], [7, 8, 9]]print(matrice[1][2]) # 6 — seconda riga, terza colonna