List

Una lista, list in Python, è un tipo di dato sequenza. Un insieme ordinato di elementi.

Una lista inizia e finisce con parentesi quadre ([ e ]). Ogni elemento al suo interno è separato da una virgola (,).
E' considerata una prassi corretta inserire uno spazio dopo ogni virgola.

Le liste sono un tipo di dato versatile che possono contenere più tipi di dati diversi all'interno delle stesse parentesi quadre. I possibili tipi di dati all'interno di una lista includono numeri, stringhe, altri oggetti e persino altre liste.

Le liste vuote non contengono elementi tra parentesi quadre.

lista = [1, 3, 5, 7, 11]

lista_vuota = []

Indice della lista

Gli elementi della lista sono ordinati per indice (index), un numero che si riferisce alla loro posizione nella lista.

Gli indici delle liste partono da 0 e aumentano di uno.
Per accedere ad un elemento della lista per indice, si usa la notazione con la parentesi quadra: nome_lista[indice].

In Python, il conteggio dell'indice della lista inizia da zero e termina con la lunghezza della lista meno uno.

lista = ["a", "b", "c"]‍

print (lista[0])

print (lista[2])
"a"
"c"

Slicing della lista

Slicing in italiano vuol dire affettare.
Per creare una fetta o una sotto-lista di elementi di una lista si può fare usando un punto iniziale e finale separati da due punti.

L'espressione in sintassi è: nome_lista[indice_iniziale:indice_finale].
Da tenere a mente che questa porzione di lista includerà l'indice_iniziale ed escluderà l'indice_finale.

Quando si effettua lo slicing di una lista, viene restituita una nuova lista, quindi se la "fetta" viene salvata e poi modificata, la lista originale rimane la stessa.

N.B.: Quando si seleziona un intervallo di elementi della lista, se il primo elemento da selezionare è all'indice 0, non è necessario specificare alcun indice prima dei due punti.
Allo stesso modo, se l'ultimo elemento selezionato è l'ultimo elemento della lista, non è necessario specificare alcun indice dopo i due punti.

strumenti = ["martello", "cacciavite", "cagna"]
strumenti_selezione = strumenti[1:3]

print (strumenti_selezione)
["cacciavite", "cagna"]

Indici negativi della lista

Gli indici negativi per le liste possono essere usati per accedere agli elementi partendo dalla fine di una lista. Questo può essere usato per accedere a singoli elementi di una lista o come parte della definizione di un intervallo.

Per selezionare l'ultimo elemento, nome_lista[-1].

piatti = ["pasta", "bistecca", "sushi", "tonno"]

print (piatti[-1])

print (piatti[-3:])

print (piatti[:-2])
"tonno"
"bistecca", "sushi", "tonno"
"pasta", "bistecca"

Unire le liste

In Python, le liste possono essere unite l'una all'altra usando il simbolo più +.

Il risultato sarà una nuova lista contenente gli stessi elementi nello stesso ordine con gli elementi della prima lista al primo posto.

lista = ["a", "b", "c"]
totale_lista = lista + ["d", "e"]

print (totale_lista)
["a", "b", "c", "d", "e"]

Il metodo .append()

In Python, si possono aggiungere valori alla fine di una lista usando il metodo .append().

Questo metodo posizionerà l'oggetto passato come nuovo elemento alla fine della lista.

lista = ["a", "b"]
lista.append("c")

print (lista)
["a", "b", "c"]

Il metodo .sort()

Il metodo .sort() ordina il contenuto di qualsiasi lista sulla quale viene richiamato.

Le liste numeriche saranno ordinate in ordine crescente e le liste di stringhe saranno ordinate in ordine alfabetico.
Questo metodo modifica la lista originale e non ha alcun valore di ritorno.

lista = [4, 2, 1, 3]
lista.sort()

print (lista)
[1, 2, 3, 4]

Il metodo .count()

Il metodo .count() cerca in una lista qualsiasi elemento che riceve come argomento, quindi restituisce il numero di volte che l'elemento è stato trovato.

lista = ["pane", "formaggio", "sugo", "posate", "formaggio", "formaggio"]

n_formaggio = lista.count("formaggio")

print (n_formaggio)
3

len()

La funzione len() può essere usata per determinare il numero di elementi presenti nella lista che viene passata come argomento della funzione.

lista = [2, 4, 3, 7, 10]

dimensione = len(lista)

print (dimensione)
5

sorted()

La funzione sorted(), in Python, accetta una lista come argomento, e restituisce una nuova lista ordinata contenente gli stessi elementi dell'originale.

Le liste numeriche saranno ordinate in ordine crescente e le liste di stringhe saranno ordinate in ordine alfabetico. Non modifica la lista originale non ordinata.

lista_disordinata = [4, 2, 1, 3]
lista_ordinata = sorted(lista_disordinata)

print (lista_ordinata)
[1, 2, 3, 4]

zip()

I tipi di dati che possono essere iterati, sui quali si possono creare dei cicli ripetuti di codice (come le liste), i loro elementi possono essere aggregati con la funzione zip().

La funzione zip() prende gli iterabili, aggrega gli elementi corrispondenti e restituisce un iteratore.

Ogni elemento dell'iteratore restituito è una tupla di valori.

Per visualizzare il contenuto dell'iteratore restituito da zip(), possiamo trasformarlo come lista usando la funzione list() e stampando i risultati.

nome_proprietari = ["Alessio", "Mario", "Luigi"]
auto = ["Ferrari", "Maserati", "Porsche"]

proprietari_auto = zip(nome_proprietari, auto)

print (list(proprietari_auto))
[("Alessio", "Ferrari"), ("Mario", 'Dr.Doggy DDS'), ("Luigi", "Porsche")]