Le liste di Python

Python logo

Le liste fanno parte dei tipi predefiniti di Python, dette anche sequenze sono elementi ordinati, iterabili, mutabili. Nell’ecosistema del linguaggio ricoprono un ruolo di estrema rilevanza, e averne una buona conoscenza e saperle maneggiare con abilità e di fondamentale importanza da parte dello sviluppatore.

Una lista non è altro che un contenitore contenente una serie di valori che possono essere dello stesso tipo o di tipi diversi tra loro. I tipi possono essere delle stringhe, degli interi , altre liste, dei numeri in virgola mobile, dei booleani, o dei dizionari. Le liste sono elementi ordinati da parte di un’indice che le contraddistingue e ne da la posizione, la dicitura degli indici segue la notazione inglese quindi parte da zero, ciò vuol dire che in un esempio:

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

la lista appena composta sarà ordinata in prima posizione con l’elemento di valore “a” che avrà indice pari a 0, il secondo elemento “b” avrà indice 1, il terzo “c” avrà indice 2, e il quarto avrà indice 3, ne consegue che questa lista è composta da 4 elementi (in questo caso tutte stringhe) che sono ordinate in sequenza con indici che vanno da 0 a 3.

Le liste sono elementi mutabili quindi si possono compiere operazioni di modifica, di cancellazione, di copia, di estensione ecc…
Sono elementi salvati in memoria per riferimento, e sono composti da un’insieme di valori identificati con etichetta detta nome della lista.
Vediamo ora come definire una lista:
Nota: Negli esempi a seguire in alcuni casi, durante la stampa a video di alcuni elementi, la funzione print() è stata omessa, questo perché gli script sono stati eseguiti da shell Python quindi non ne necessitano per forza l’uso. Se tali script dovranno essere testati in file .py allora sarà cura dell’utente aggiungerla.

* esempio di lista
lista = ["a", 1, 1.5 ,[1, 2, "uno"], True, {"nome" : "Pippo", "cognome" : "Verdi"}]

Sopra è stata creata una lista con valori eterogenei, dove l’elemento alla sinistra del simbolo uguale è il nome, e quelli alla destra del simbolo uguale sono i valori che vanno racchiusi tra parentesi quadre.

lista = []
* esempio di lista vuota

Qui è stata semplicemente definita una Lista vuota, questa dicitura viene anche usata per svuotarla da tutti gli elementi.

* creo una lista
lista = [1, 2, 44, 66, 3]
* svuoto la lista
lista = []

Metodi per gestire le liste.

Vediamo ora alcuni metodi per compiere operazioni sulle liste.

append() Serve per aggiungere elementi alla fine di una lista.

colori = ['verde', 'bianco', 'rosso']
* l'output della lista sarà ['verde', 'bianco', 'rossi']
* Aggiungo un elemento
colori.append("azzurro")
* l'output sarà ['verde', 'bianco', 'rossi', 'azzurro']

clear() Serve per rimuovere tutti gli elementi dalla lista

colori.clear()
* l'output sarà una lista vuota []

count Restituisce il numero di elementi contenuti in una lista.

colori = ['verde', 'bianco', 'rosso']
colori.count()
* l'output sarà 3

extend Aggiunge una lista ad un’altra lista.

colori1 = ['giallo', 'rosa', 'nero']
colori.extend(colori1)
* l'output sarà ['verde', 'bianco', 'rosso', 'giallo', 'rosa', 'nero']

sort Serve per ordinare gli elementi di una lista in maniera ascendente.

colori.sort()
* l'output sarà ['bianco', 'giallo', 'nero', 'rosa', 'rossi', 'verde']

reverse Serve per rovesciare dalla fine all’inizio una lista.

colori.reverse()
* l'output sarà ['verde', 'rossi', 'rosa', 'nero', 'giallo', 'bianco']

copy() Restituisce una copia della lista.

copia_di_colori = colori.copy()

pop() Elimina un elemento indicato con l’indice, nel caso di pop() si può racchiudere il valore eliminato in una variabile.

colori.pop(2)
* È stato eliminato il valore con indice 2 che equivale a 'rosa'.
x = colori.pop(4)
* In questo caso è stato eliminato il valore con indice 4 ovvero il 'bianco' e il suo valore è stato salvato nella variabile x

index Restituisce il valore dell’indice di un elemento.

y = colori.index("nero")
* il valore di y è 2

remove() Elimina un elemento in funzione del suo nome.

colori.remove('nero')

insert() Inserisce un elemento in data posizione.

colori.insert(2, 'viola')
* il risultato sarà ['verde', 'rossi', 'viola', 'giallo']

Vedere il contenuto di una lista

Per vedere il contenuto di una lista basta semplicemente digitarne il nome.

numeri = [1, 2, 3, 4, 5, 6,7]
numeri
* il risultato è il seguente [1, 2, 3, 4, 5, 6,7]

Però per poter vedere tali elementi in una formattazione più adeguata, o per poter usare una determinata logica in un programma e necessario iterare una lista con un ciclo for().

for i in numeri:
  print("questo è il numero: "+ str(i))

* Restituisce: 
* Questo è il numero: 1
* Questo è il numero: 2
* Questo è il numero: 3
* Questo è il numero: 4
* Questo è il numero: 5
* Questo è il numero: 6
* Questo è il numero: 7

Alle liste si possono innestare altre liste che vengono dette liste nested.

listaInnestata = [1, 2, 3, [45, 3, 12], "uno", [10, "hello"]]

I valori delle liste come che per tutte le variabili di Python sono passati per riferimento, facciamo un esempio:

* Se creo una lista a
a = [1, 2, 3]
* Poi creo una variabile b a cui vi assegno a
b = a
* Il risultato di b sarà [1, 2, 3]
* ad a aggiungo un elemento
a.append(4)
* Il risultato di a sarà [1, 2, 3, 4]
* Ma anche il risultato di b sarà diventato [1, 2, 3, 4]
* Poi aggiungo un elemento a b
b.append(5)
* Il risultato di b sarà [1, 2, 3, 4, 5]
* Ma anche il risultato di a sarà diventato [1, 2, 3, 4, 5]
* Questo vuol dire che a e b sono due nomi diversi che operano sullo stesso indirizzo di memoria

Per verificare l’esempio precedente possiamo usare la funzione di Python id() che restituisce una valore identificativo unico corrispondente all’indirizzo in memoria della variabile e ne vale per tutta la vita della di essa.

id(a)
* Restituisce nel caso del mio programma 140263090601088
id(b)
* Restituisce nel caso del mio programma 140263090601088

Come si può vedere le liste a e b hanno lo stesso identificativo di memoria. Facciamo ora un’altro esempio per capire meglio il riferimento delle variabili.

c = ['a', 'b', 'c', 'd']
id(c) 
* Restituisce nel mio caso 140263090507392
* Se adesso cambio il valore di c con un'altro valore.
c = ["ciao", "mondo"]
id(c)
* Restituisce nel mio caso 140263090606272 

Da vedere che l’identificativo sulla stretta variabile nei due casi cambia, questo vuole dire che in realtà non è la stessa variabile ma sono due diverse allocazioni di memoria, detto in poche parole è stato preso il nome alla prima variabile ed e’ stato assegnato poi alla seconda, la prima variabile è rimasta in memoria senza etichetta e li vi rimarrà finche’ Python non deciderà di distruggerla.

Piccolo esempio di un programma con le liste

Facciamo ora un piccolo esempio semplice di un programmino che ci chiederà di immettere un numero e verificherà la sua presenza all’interno di una lista.

* Creo una lista di numeri
lista = [3, 55, 2, 34, 12, 88, 1, 76, 4, 28, 43]

* Uso questa variabile per confermare la verifica
verifica = False

* richiedo un numero
numero = int(input("Inserisci un numero: "))

for i in lista: 
  if i == numero:
    verifica = True

if verifica == True:
  print("Il numero che hai digitato è presente nell\' elenco")
else:
  print("Il numero che hai digitato NON è presente nell\' elenco")

In questo articolo è stata fatta una panoramica sull’uso delle liste, ricordando infine dell’estrema importanza che hanno nel mondo Python.

 

SviluppoMania
Stay Tuned

MARCO.VERGNANI

Articoli correlati

Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.