Python: le liste e i principali metodi esse correlati

Python: le liste e i principali metodi esse correlati

9 Ago 2018 Non attivi Di Admin M.

In Python le liste sono elenchi ordinati di elementi, che possono essere anche di diverso tipo.

 

Definiamo una semplice lista contenente qualche valore numerico a caso:

 

Elenco - Python

 


Dunque bisogna prestare attenzione ai caratteri “[” e “]”: sono proprio le parentesi quadre che indicano a Python di creare una lista. 


 

Ma, come abbiamo detto, le liste possono contenere anche elementi di diverso tipo, ecco un esempio:

 

 

Questo è un esempio più interessante.

Nella nostra lista varie: il primo elemento è un numero, il secondo una stringa, il terzo addirittura un’altra lista!

 

Adesso per visualizzarne il contenuto:

 

Elenco - Python

 

 

Aggiungere un elemento 

 

Se vogliamo esagerare:

 

aggiungere un elemento in una lista - Python

 

Ora la nostra lista contiene: un valore numerico, una stringa, un’altra lista e addirittura una libreria importata!

 

E’ probabilmente inutile importare un modulo in una lista, ma ci è servito per intravedere il funzionamento del metodo append che aggiunge un elemento in fondo alla lista.

 


In Python il punto separa un oggetto da un suo attributo o da un suo metodo.


 

 

Estrarre un elemento

 

Ora che abbiamo imparato  a creare liste, è bene sapere come poter estrarre un determinato elemento.

 

estrazione elemento lista - Python

 

Per estrarre l’elemento nella prima posizione abbiamo usato l’indice 0.

 

Questo perché in Python la numerazione delle posizioni all’interno di una lista parte da 0: data una lista di n elementi, questa va da 0 a n-1.

 

 

Cosa succede se inseriamo un indice che non esiste?

 

Viene scatenato un errore, o meglio, un’eccezione (di cui parleremo in seguito):

 

errore indice lista - python

 

L’errore “list index out of range” sta proprio ad indicare che l’indice utilizzato si trova al di fuori della dimensione della lista.

 

 

Estrarre un elemento in ultima posizione

 

Per estrarre un elemento che si trova in ultima posizione abbiamo due possibilità:

 

estrarre elemento ultima posizione lista - python

 

1) Se conosciamo la lunghezza della lista, possiamo direttamente indicare l’indice dell’ultimo elemento;

 

2) In alternativa possiamo utilizzare l’indice -1.

 


Python sa che quando l’indice è negativo deve partire dal fondo.

Gli elementi di una lista di lunghezza n possono essere individuati in ordine inverso con un indice che va da -1 a -n. 


 

 

Funzione len: lunghezza di una lista

 

Per conoscere la dimensione di una lista, esiste la funzione len che ne restituisce la lunghezza:

 

lunghezza lista - python

 

 

Estrarre piu’ elementi 

 

Per estrarre più elementi in un solo colpo basta specificare due indici separandoli con il simbolo “:”.

 

estrarre più elementi in una lista - python

 

Possiamo anche usare indici negativi con il simbolo “:” :

 

estrarre più elementi in una lista (indici negativi) - python

 

Si può persino omettere uno dei valori a sinistra o a destra del simbolo: in tal caso Python raggiunge automaticamente il primo o l’ultimo indice della lista.

 

estrarre più elementi in una lista - python

 

Quest’ultimo esempio è da tenere a mente!

E’ il metodo più semplice e veloce per duplicare una lista:

 

duplicare una lista - python

 

Questo particolare metodo di accesso è detto “slicing” (dall’inglese to slice, “affettare”): è uno degli aspetti che rende Python piacevole da utilizzare.

 

 

Lo slicing e i suoi utilizzi

 

Altri linguaggi di programmazione utilizzano diverse modalità di accesso agli elementi di una lista.

Talvolta lo slicing di Python può risultare complicato.

 

Ma possiamo aiutarci con il seguente schema:

slicing - python

 

Dobbiamo immaginare non tanto gli elementi, quanto le posizioni che li delimitano.

In questo modo è più facile ricordare quali sono gli indici da utilizzare.

 

Lo slicing può essere utilizzato anche per assegnare in un colpo solo più elementi di una lista:

 

slicing - python

 

Oppure per inserire nuovi elementi:

 

slicing inserire elementi in una lista- python

 

Abbinando fra loro questi esempi, possiamo immaginare come cancellare ad esempio gli ultimi due elementi di una lista:

 

slicing cancellare ultimi elementi in una lista- python

 

 

Metodi per le liste 

 

Abbiamo già intravisto in questo articolo il metodo append, ma quali altri metodi possono essere applicati ad una lista?

 

Lo scopriamo con il nostro vecchio amico dir:

 

metodi per le liste - python

 

Ignoriamo gli attributi che iniziano e terminano con la sequenza “__” ed analizziamo gli altri: ‘append’, ‘clear’, ‘copy’, ‘count’, ‘extend’, ‘index’, ‘insert’, ‘pop’, ‘remove’, ‘reverse’, ‘sort’.

 

 

Il metodo insert

 

Sappiamo già utilizzare il metodo append, che consente di aggiungere un nuovo elemento in fondo alla lista.

 

Il metodo insert permette di inserire un elemento nella posizione desiderata:

 

metodo insert - python

 

Per inserire un elemento in fondo alla lista possiamo usare un numero qualsiasi, uguale o maggiore rispetto alla lunghezza della lista:

 

metodo insert - python

 

 

Metodo extend

 

Il metodo extend accetta come parametro una seconda lista e la aggiunge in fondo a quella principale.

 

metodo extend - python

 

 

La differenza tra il metodo instert ed il metodo extend è evidente:

 

1) il primo aggiunge in fondo alla lista un elemento semplice

2) il secondo aggiunge in fondo alla lista principale, un’intera lista

 

In pratica è un po’ come usare un append per ogni elemento della lista da aggiungere.

 

 

Metodo remove

 

Il metodo remove rimuove l’elemento passato come parametro:

 

metodo remove - python

 

Ma se  l’elemento non esiste viene lanciata un’eccezione:

 

metodo remove eccezione - python

 

 

Il metodo pop

 

Il metodo pop è un metodo particolare: abbina l’estrazione alla rimozione di un elemento da una lista.

 

Può essere usato con o senza indice, in quest’ultimo caso estrae l’ultimo elemento della lista:

 

metodo pop - python

 

 

Il metodo count

 

Il metodo count conta gli elementi della lista che sono uguali al parametro passato:

 

metodo count - python

 


ATTENZIONE: count non esplora ricorsivamente eventuali liste presenti all’interno della lista principale.


 

Esempio:

metodo count con lista interna - python

 

 

Il metodo index

 

Il metodo index restituisce la posizione all’interno della lista dell’elemento passato come parametro:

 

metodo index - python

 

 


ATTENZIONE: se l’elemento non esiste viene scatenata un’eccezione.


 

metodo index eccezione - python

 

 

Metodo reverse

 

Il metodo reverse, come si può immaginare dal nome, inverte semplicemente una lista:

 

metodo reverse - python

 

Metodo sort 

 

Il metodo sort dispone invece in ordine alfabetico e/o numerico gli elementi della lista:

 

metodo sort - python

 


ATTENZIONE: se utilizziamo il metodo sort con una lista di valori eterogenei scateneremo un’eccezione.


 

Esempio:

metodo sort eccezione - python

 

 

Le list comprehension

 

La list comprehension  è un costrutto sintattico che permette di creare nuove liste a partire da altre liste.

 

In pratica permette di creare una lista applicando una funzione agli elementi di un’altra lista.

Vediamo un esempio:

 

list comprehension - python

 

Possiamo anche scegliere quali elementi inserire nella lista creata, come ad esempio i numeri pari:

 

list comprehension numeri pari - python

 

 

La list comprehension può anche essere “nidificata”.

Ad esempio, se volessimo creare una matrice identità, ovvero una matrice di n per n elementi tutti uguali a zero, tranne la diagonale composta da un’unità, potremmo utilizzare due list comprehension, una dentro l’altra:

 

list comprehension annidate - python

 

Non temete se i costrutti appena utilizzati vi sembrano incomprensibili, ne parleremo dettagliatamente in seguito.

 

Adesso che conosciamo le liste e i principali metodi ad esse correlati, possiamo proseguire con gli altri tipi di dati che ci offre il nostro buon Python!

Segui la nostra guida alla programmazione con Pythona seguire: stringhe, tuple, insiemi, dizionari e dati numerici.

 


 

Continua a seguirci e iscriviti alla nostra newsletter per rimanere aggiornato!                        Newsletter