Python: le liste e le tuple

Cerca nel sito

Altri risultati..

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Python le liste e le tuple


Indice

Le liste e le tuple

Ogni linguaggio di programmazione ci da la possibilità di creare sequenze di dati, Python lo fa con tre tipi, le liste e le tuple e i set.

Le liste

Le Liste sono un tipo di dato che contiene al suo interno un insieme di dati uguali o diversi tra di loro, ordinati in base ad un indice proprio della Lista.


Possiamo creare una lista di dati semplicemente racchiudendoli tra parentesi quadre e separandoli con una virgola;

l = [1, 2 ,3 ,5 ,8 ,13 ,21]
print(l)
print(type(l))

Output:

[1, 2, 3, 5, 8, 13, 21]
<class ‘list’>

In questo caso abbiamo creato una lista che contiene i primi 7 valori della successione di Fibonacci.
Possiamo conoscere la lunghezza di una lista utilizzando la funzione len.

len(l)

Output:

7

Indexing

Per accedere ad un elemento della lista dobbiamo inserire il suo indice tra parentesi quadre, questa operazione è chiamata indexing.

NOTA BENISSIMO

In Python e in quasi tutti i linguaggi di programmazione gli indici partono da 0.

# stampiamo il primo elemento della lista
print(l[0])

#stampiamo il secondo elemento della lista
print(l[1]

Output:

1
2

L’utilizzo del – davanti all’indice ci permette di accedere alla lista dall’ultimo elemento verso il primo, in questo caso l’indice parte da 1 e non da zero, quindi con -1 accederemo all’ultimo elemento della lista.

# stampiamo l’ultimo elemento della lista
print(l[-1])

# stampiamo il terzultimo elemento della lista
print(l[-3])

Output:

21
8

Slicing

Possiamo estrarre solo una parte della lista inserendo gli indici di inizio (incluso) e fine (escluso) separati da (:)

# primi 3 elementi della lista
print(l[:3])

# quarto e quinto elemento
print(l[4:6])

# ultimi due elementi
print(l[-2:])

# fino ali ultimi 2 elementi
print(l[:-2])

Output:

[1, 2, 3]
[8, 13]
[13, 21]
[1, 2, 3, 5, 8]

Possiamo anche utilizzare un terzo valore, che indicherà il verso della selezione, valore 1: da sinistra a destra (valore di default) valore -1 da destra a sinistra (per ribaltare la lista)

# dall’ultimo al primo
l[::-1]

Output:

[21, 13, 8, 5, 3, 2, 1]

Verifica

Possiamo verificare se un elemento è contenuto nella lista con lo statement in, questo ritorna True se l’elemento è contenuto nella lista, altrimenti ritorna False (in è molto utile utilizzato per creare istruzioni condizionali, di cui parleremo più avanti).

l = [1, 2 ,3 ,5 ,8 ,13 ,21]
print(7 in l)

l = [“casa”, “pozzo”, “albero”]
print(“albero” in l)

Output:

False
True

Modifica

Possiamo modificare il valore di un elemento della lista semplicemente accedendo ad esso e eseguendo un’assegnazione.

l = [1, 2 ,3 ,5 ,8 ,13 ,21]

print(“Vecchio valore in posizione 5: %d” % l[4])

# sostituiamo il valore alla posizione 3 con un 10
l[4]=10

#stampiamo l’ultimo elemento della lista
print(“Nuovo valore in posizione 5: %d” % l[4])

Output:

Vecchio valore in posizione 5: 8
Nuovo valore in posizione 5: 10

Per modificare il contenuto di una lista possiamo sfruttare i seguenti metodi:

  • append(e) aggiunge un elemento e in fondo alla lista
  • insert(i,e) aggiunge l’elemento e all’indice i della lista
  • remove(e) rimuove l’elemento e dalla lista
  • pop(i) rimuove l’elemento all’indice i

# creiamo una lista contenente solo due elementi
animals = [“topo”, “gatto”]

# aggiungiamo la parola “cane” alla lista
animals.append(“cane”)
print(animals)

# rimuoviamo la parola “gatto” dalla lista
animals.remove(“gatto”)
print(animals)

# aggiungiamo un sinonimo di gatto alla posizione 1
animals.insert(1,”bestia demoniaca”)
print(animals)

# rimuoviamo l’elemento alla posizione 1
animals.pop(1)

# aggiungiamo un sinonimo più realistico di gatto alla posizione 1
animals.insert(1,”dominatore della terra, dell’universo e di tutto il creato”)
print(animals)

Output:

[‘topo’, ‘gatto’, ‘cane’]
[‘topo’, ‘cane’]
[‘topo’, ‘bestia demoniaca’, ‘cane’]
[‘topo’, “dominatore della terra, dell’universo e di tutto il creato”, ‘cane’]

Le Tuple

Come le liste si tratta di un gruppo, un insieme di elementi, definiti stavolta utilizzando una coppia di parentesi tonde, oppure senza alcuna parentesi.

Ti potrebbe interessare anche:  Regex in breve

Anche in questo caso possiamo accedere agli elementi della Tuple utilizzando l’indice.

Ma la più grande differenza è che una volta creati, le Tuple NON si possono modificare, come invece accade per le Liste.

Utilizzeremo,dunque, una Tuple invece di una Lista in quelle situazioni in cui è molto importante che un elenco sia immutabile, tenendo presente che anche  l’iterazione all’interno di un Tuple avviene molto più velocemente che in una Lista, e questo è un bel punto a vantaggio dei Tuple.

Passiamo alle tuple: possiamo creare una tupla inserendo gli elementi tra parentesi tonde e separandoli con una virgola:

t = (1, 2 ,3 ,5 ,8 ,13 ,21)
print(t)
print(type(t))

Per l’accesso agli elementi vale la stessa regola delle liste, quindi indexing e slicing.

# Stampiamo il primo elemento della tupla
print(t[0])

# Stampiamo l’ultimo elemento della tupla
print(t[-1])

Output:

1
21

Che differenza c’è tra una lista e una tupla ?

Abbiamo detto sopra che l’unica differenza consiste nel fatto che, una volta creata, una tupla non può essere modificata.

Infatti:

t[0] = 5

Output:

Python eerore modifica tuple

Come vedi il tentativo di modificare un’elemento della lista scatena un’eccezione di tipo TypeError, che ci informa proprio del fatto che gli elementi di una tupla non possono essere modificati.

Le stringhe in Python possono essere considerate come tuple di caratteri, questo vuol dire che possiamo usare le operazioni di indexing e slicing anche su di esse:

s = “Hello world”

print(s[:5])
print(s[::-1])

s[4]=”s”

Output:

Hello
dlrow olleH

Anche in questo caso il tentativo di modificare un elemento ha scatenato la stessa eccezione.

Altre funzioni utili per liste e tuple

hello_list = [“Ciao”,”Hello”,”Hola”,”Salut”,”Hallo”,”Ciao”]
hello_tuple = (“Ciao”,”Hello”,”Hola”,”Salut”,”Hallo”,”Ciao”)

# ottieni l’indice dell’elemento
print(hello_list.index(‘Salut’))
print(hello_tuple.index(‘Salut’))

# conta quante volte è presente un’elemento
print(hello_list.count(‘Ciao’))
print(hello_tuple.count(‘Ciao’))

Output:

3
3
2
2

Introduzione a Python – Input e Output

https://matematicaoltre.altervista.org/linguaggio-python-le-variabili/

Ti potrebbe interessare anche:  Introduzione alla Business Intelligence

(106)