Le liste sono un tipo di sequenza, che consente di raccogliere una collezione ordinata di elementi eterogenei all’interno di una singola variabile.
Creazione
Per creare una lista in Python, è sufficiente racchiudere gli elementi tra parentesi quadre []
. Le liste possono contenere elementi di diversi tipi, tra cui numeri, stringhe, oggetti personalizzati e altre liste. Ecco un esempio di creazione di una lista:
In questo caso, my_list
è una lista che contiene numeri interi, una stringa e un numero floating-point.
Accesso agli elementi
Per accedere agli elementi di una lista, è possibile utilizzare l’indice dell’elemento desiderato, iniziando da zero per il primo elemento. Ad esempio, per accedere al secondo elemento di my_list
, possiamo fare:
Aggiunta e Rimozione
Le liste supportano una serie di operazioni per aggiungere e rimuovere elementi.
Aggiunta di Elementi
append()
: Aggiunge un elemento alla fine della lista.insert()
: Inserisce un elemento in una posizione specifica.extend()
: Aggiunge una sequenza di elementi (ad esempio, un’altra lista) alla fine della lista.
Rimozione di Elementi
remove()
: Rimuove la prima occorrenza di un elemento specifico.pop()
: Rimuove un elemento in una posizione specifica e lo restituisce. Se non si specifica una posizione, viene rimosso l’ultimo elemento.del
: Rimuove un elemento in una posizione specifica senza restituirlo.
Altre Operazioni Comuni
len()
: Restituisce la lunghezza di una lista (il numero di elementi).count()
: Restituisce il numero di occorrenze di un elemento specifico nella lista.index()
: Restituisce l’indice della prima occorrenza di un elemento specifico nella lista.sort()
: Ordina la lista in ordine crescente (per le liste di numeri) o in ordine alfabetico (per le liste di stringhe).reverse()
: Inverte l’ordine degli elementi nella lista.
Slicing
Lo slicing delle liste in Python è una tecnica potente che consente di estrarre porzioni specifiche di una lista. Lo slicing utilizza un’indicizzazione basata su intervallo per specificare quali elementi devono essere inclusi nella porzione estratta. Qui di seguito, approfondiremo lo slicing con vari esempi dedicati.
Sintassi di base dello slicing:
La sintassi per eseguire lo slicing in una lista è la seguente:
inizio
: L’indice da cui iniziare a estrarre elementi. Questo elemento è incluso nella porzione risultante (default: inizio della lista).fine
: L’indice fino al quale estrarre elementi. Questo elemento non è incluso nella porzione risultante (default: fine della lista).passo
: L’intervallo tra gli elementi da estrarre. Se omesso, il passo è 1.
Ecco alcuni esempi che illustrano come utilizzare lo slicing:
Esempio 1: Estrazione di una sotto-lista dal terzo elemento al settimo elemento (indice 2-6):
Esempio 2: Estrazione di tutti gli elementi fino al quarto elemento (indice 0-3):
Esempio 3: Estrazione di tutti gli elementi dal quarto elemento in poi (indice 4-9):
Esempio 4: Estrazione di tutti gli elementi con un passo di 2 (elementi pari):
Esempio 5: Estrazione di tutti gli elementi in ordine inverso:
Esempio 6: Estrazione di una sotto-lista con un passo negativo (in ordine inverso):
Slicing con step diversi:
Puoi specificare un passo diverso da 1 per estrarre elementi ad intervalli specifici:
Lo slicing con passi diversi può essere utilizzato per estrarre elementi alternati, invertire l’ordine degli elementi o eseguire altre operazioni complesse.
List Comprehensions
Le list comprehensions in Python sono un modo conciso e potente per creare nuove liste applicando trasformazioni o filtri agli elementi di una lista esistente. Questa tecnica è molto apprezzata per la sua chiarezza e leggibilità del codice. Qui di seguito, approfondiremo le list comprehensions con vari esempi dedicati.
Sintassi di base delle List Comprehensions:
La sintassi generale di una list comprehension è la seguente:
nuova_lista
: La nuova lista che verrà creata.espressione
: L’espressione da applicare a ciascun elemento nella lista originale.elemento
: La variabile che rappresenta ciascun elemento nella lista originale.lista_originale
: La lista da cui verranno estratti gli elementi.condizione
(facoltativa): Una condizione che determina se un elemento deve essere incluso nella nuova lista.
Esempi di List Comprehensions:
Ecco alcuni esempi che illustrano come utilizzare le list comprehensions:
Esempio 1: Creazione di una lista dei quadrati dei numeri da 0 a 9:
Esempio 2: Creazione di una lista dei numeri pari da 0 a 9:
Esempio 3: Estrazione di lettere maiuscole da una stringa:
Esempio 4: Creazione di una lista di tuple con elementi e il loro quadrato:
Esempio 5: Filtraggio dei numeri primi in un intervallo:
Esempio 6: Rimozione delle vocali da una stringa:
Esempio 7: Creazione di una lista annidata con due loop in una list comprehension:
Liste Annidate
Le liste possono contenere altre liste, creando liste annidate. Questo è utile per rappresentare dati strutturati. Ad esempio:
Per accedere agli elementi di una lista annidata, è necessario utilizzare l’indicizzazione multipla. Ad esempio, per accedere al numero 5:
Copia di Liste
Quando si lavora con liste, è importante comprendere come le copie funzionino. L’assegnazione diretta di una lista a un’altra variabile non crea una copia indipendente, ma piuttosto un riferimento alla stessa lista. Per creare una copia indipendente di una lista, è possibile utilizzare il metodo copy()
o eseguire una slicing completo: