Il 0% ha trovato utile questo documento (0 voti)
12 visualizzazioni11 pagine

09 - Le Liste e Le Tuple

Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
12 visualizzazioni11 pagine

09 - Le Liste e Le Tuple

Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 11

09_Le Liste e le Tuple.

md 13/9/2023

Le Liste e le Tuple
Gli argomenti di questo capitolo

1. Cosa è una lista


2. Lo slicing di una lista - le sottoliste
3. Uno lista dentro una lista
4. Sostituzione di un elemento di una lista
5. Eliminazione di un elemento da una lista - del -
6. Alcune funzioni utili per le liste
7. Le tuple

Cosa è una lista


Una variabile di tipo lista è una variabile che al suo interno ha un elenco di elementi, dello stesso tipo o di
tipo diverso, che sono accessibili mediante gli indici che ne identificano la posizione. Facciamo degli esempi,
creando una variabile e assegnandole una lista:

elenco = [2, 5, "bacon", 3.14, "eggs"]

Così come una stringa viene definita utilizzando apici o doppi apici, una Lista viene definita utilizzando una
coppia di parentesi quadre. Gli elementi della Lista vengono quindi separati tra loro con le virgole.

1 / 11
09_Le Liste e le Tuple.md 13/9/2023

Abbiamo detto che gli elementi sono ordinati in base ad un indice proprio di ciascuna lista: ciò significa che a
ciascun elemento è associato un numero che ne rappresenta la posizione nell'elenco. Questo è fondamentale
se vogliamo richiamare un elemento specifico in quanto dovremo usare il suo indice corrispondente.

Ricordate bene che il primo valore della Lista ha sempre indice 0. Quindi 2 avrà indice 0, 5 avrà indice
1, 'bacon' avrà indice 2 e così via... Volendo quindi stampare 'bacon' dobbiamo quindi scrivere
print(elenco[2])

Indici negativi

Se utilizziamo invece un indice negativo possiamo accedere agli elementi della lista dalla fine all'inizio,
utilissimo ad esempio in caso di Liste particolarmente lunghe. L'ultimo elemento ha indice -1, il penultimo -2 e
così via.. Per richiamare il 3.14 possiamo fare:

print(elenco[-2])

Lo slicing di una lista - le sottoliste


Un'altra caratteristica particolarmente interessante di questo sistema di indicizzazione è che avete la
possibilità di accedere a una fetta di elementi da voi scelta, impostando un punto iniziale e un punto finale
nell'indice. Ad esempio, creiamo una nuova lista. Facciamo stavolta una lista di soli numeri primi ed andiamo a
stampare solo una parte degli elementi:

primi = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47]
print(primi[4:10])

il risultato sarà:

[11, 13, 17, 19, 23, 29]

Se volessimo creare una nuova variabile che comprenda i numeri primi dal 11 al 29 basterà quindi fare:

primi = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47]
fetta = primi[4:11]
print(fetta)

il risultato sarà sempre:

[11, 13, 17, 19, 23, 29]

NOTA: come avrete notato, lo slicing si comporta esattamente come la funzione range in cui l'ultimo
elemento indicato nell'intervallo non viene utilizzato.

Per ottenere tutti i numeri dal quinto all'ultimo nella nostra lista possiamo fare:

2 / 11
09_Le Liste e le Tuple.md 13/9/2023

primi = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47]
fetta = primi[4:]
print(fetta)

il risultato sarà sempre:

[11,13,17,19,23,29,31,37,41,43,47]

Se volessimo ottenere gli elementi dal primo (indice 0) al quinto (indice 4), dovremo scrivere:

primi = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47]
fetta = primi[:5] # elemento di posizione 5 non viene preso
print(fetta)

il risultato sarà:

[2,3,5,7,11]

Se ora volessimo stampare gli elementi della fetta, uno alla volta, possiamo fare:

primi = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47]
fetta = primi[:5] # elemento di posizione 5 non viene preso
for i in fetta:
print(i)

il risultato sarà:

2
3
5
7
11

Una lista dentro una lista


Abbiamo detto che una lista può contenere qualsiasi tipo di dato. Quindi anche una lista. Vediamo il seguente
esempio.

lista_multipla = ["spam","eggs",23,"bacon",[1,2,3,4,5],3]
print(lista_multipla)

il risultato sarà:

["spam","eggs",23,"bacon",[1,2,3,4,5],3]

3 / 11
09_Le Liste e le Tuple.md 13/9/2023

Se vogliamo estrarre la lista presente in lista_multipla, dovremo fare:

print(lista_multipla[-2])

che fornirà il seguente risultato:

[1, 2, 3, 4, 5]

Nel caso volessimo stampare il numero 5 della sottolista, dovremmo scrivere:

print(lista_multipla[-2][-1])

il cui risultato sarà (provate):

Ancora una volta, gli indici sono indispensabili per lavorare con le liste.

Sostituzione di un elemento di una lista


Utilizzando gli indici possiamo anche sostituire un elemento della Lista. Ad esempio se volessimo sostituire la
parola "bacon" con la parola "pancetta" potremo fare:

lista_multipla = ["spam","eggs",23,"bacon",[1,2,3,4,5],3]
lista_multipla[3] = "pancetta"
print(lista_multipla)

il risultato sarà:

['spam', 'eggs', 23, 'pancetta', [1, 2, 3, 4, 5], 3]

Oppure, con un altro esempio:

lista = [1, 2, 3, 4, 5, 6, 7]
lista[0] == 99

il risultato sarà che il contenuto della lista diventerà:

[99, 2, 3, 4, 5, 6, 7]

Eliminazione di un elemento da una lista - del -


Per eliminare un elemento da una lista possiamo usare il comando del indicando l'elemento da cancellare. Ad
esempio:

4 / 11
09_Le Liste e le Tuple.md 13/9/2023

lista_multipla = ["spam","eggs",23,"bacon",[1,2,3,4,5],3]
del lista_multipla[-2]
print(lista_multipla)

otterremo:

['spam', 'eggs', 23, 'bacon', 3]

Alcune funzioni utili per le liste


Di seguito andremo ad studiare una serie di funzioni (solo una minima parte di quelle esistenti) utili per la
gestione delle liste. Queste funzioni possono essere chiamate anche con il termine di metodi. Ne capiremo il
motivo quando andremo a studiare la programmazione ad oggetti. Di seguito, l'elenco dei metodi che
studieremo:

1. list()
2. len()
3. append()
4. pop()
5. insert()
6. extend()
7. remove()
8. sort()
9. reverse()
10. index()
11. sum()

NOTA: Vedrete che alcune funzioni prendono come argomento la variabile lista e sul suo contenuto
vanno esegue delle operazioni (come list(), *sum() e len()). Altri metodi si agganciano (fatemi passare
per buono questo termine) al nome della lista. Gli esempi renderanno chiaro questa differenza.

list()

Un modo per creare una lista a partire da dati di tipo diverso, ad esempio da una stringa, oppure dai dati
generati dalla funzione range(), oppure come si vedrà in seguito anche da tuple o insiemi o dizionari, è quello
di usare la funzione list(). Vediamo alcuni esempi.

vocali = 'aeiou' #vocali è una stringa


listavocali = list(vocali) #listavocali è una lista
print(vocali) #stampa della variabile di tipo stringa
print(listvocali) #stampa della variabile di tipo lista

il risultato delle print sarà:

aeiou
['a', 'e', 'i', 'o', 'u']

5 / 11
09_Le Liste e le Tuple.md 13/9/2023

Oppure possiamo usare la funzione range().

lista_numerica = list(range(99, 300))

fornirà il seguente risultato:

[99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
291, 292, 293, 294, 295, 296, 297, 298, 299]

len()

Molto semplice da capire ed utilissima in molte applicazioni.

lista = [1, 2, 3]
lunghezza = len(lista)
print (lunghezza)

il risultato ovviamente darà 3.

append()

Con il metodo append(), si aggiunge un elemento alla lista. Questo metodo verrà inserito alla fine della lista,
come ultimo elemento. Supponiamo di aver creato una lista di nome inventario.

inventario = ["torcia","spada","pane elfico","arco"]

e supponiamo di voler aggiungere un nuovo elemento. Si può utilizzare il metodo append() nel seguente
modo

inventario.append("frecce")

se andiamo a verificare con una print:

6 / 11
09_Le Liste e le Tuple.md 13/9/2023

print(inventario)

otterremo:

["torcia","spada","pane elfico","arco","frecce"]

esempio

Il codice di seguito indicato permette l'inserimento di nuove armi fino a quando ne abbiamo da inserire:

def riempi_inventario():
inventario = []
oggetto = ""
while True:
oggetto = input('Cosa vuoi aggiungere all\'inventario? ')
if oggetto == "terminato":
break
else:
inventario.append(oggetto)

print("Gli oggetti presenti nell'inventario sono: " + str(inventario))

riempi_inventario()

insert()

Un altro modo per inserire un elemento in una certa posizione è quello di utilizzare il metodo insert(pos,
valore). Ad esempio:

lista = [1, 2, 3, 4, 5, 6, 7]
lista.insert(0) == 99

il risultato sarà che il contenuto della lista diventerà:

[99, 2, 3, 4, 5, 6, 7]

extend()

Supponiamo di avere due liste, chiamate lista_a e lista_b, e di voler aggiungere gli elementi di lista_b a quelli
presenti in lista_a. Possiamo utilizzare il metodo extend() per questo scopo:

lista_a = ["pippo","pluto","giacobbe"]
lista_b = ["spam","eggs","bacon"]

7 / 11
09_Le Liste e le Tuple.md 13/9/2023

lista_a.extend(lista_b)
print(lista_a)

il risultato sarà:

['pippo', 'pluto', 'giacobbe', 'spam', 'eggs', 'bacon']

remove()

Al contrario della funzione append() possiamo eliminare invece elementi dalla lista mediante la funzione
remove() utilizzando il valore dell'elemento che vogliamo rimuovere. Creiamo una nuova lista:

monty = ["spam","eggs","bacon","bob","alice","pluto"]

Al contrario della funzione del in cui andiamo ad eliminare un elemento della lista a partire dal suo indice, con
la funzione remove andremo ad eliminare l'elemento indicando il suo nome. Ad esempio:

monty.remove("pluto")
print(monty)

il cui risultato sarà quello di eliminare pluto dalla lista.

sort()

sort, traducibile in italiano con il termine ordinare, consente di ordinare i valori di una lista, in modo alfabetico
se essa contiene stringhe, o in modo numerico se nella lista ci sono numeri.

alfabeto = ["z","u","a","c","v"]
numeri = [32,1,15,2,22,23,56,88]
alfabeto.sort()
numeri.sort()
print(alfabeto)
print(numeri)

il risultato sarà:

['a', 'c', 'u', 'v', 'z']


[1, 2, 15, 22, 23, 32, 56, 88]

Possiamo ordinare gli elementi al contrario utilizzando il parametro reverse

8 / 11
09_Le Liste e le Tuple.md 13/9/2023

numeri = [32,1,15,2,22,23,56,88]
numeri.sort(reverse=True)
print(numeri)

il risultato sarà:

[88, 56, 32, 23, 22, 15, 2, 1]

index()

Il metodo index() ci restituisce l'indice di un dato contenuto all'interno della lista:

numeri = [32,1,15,2,22,23,56,88]
a= numeri.index(22)
print(a)

provate:

Scrivere un programma che inseriti in una lista dei numeri forniti in input, crei una nuova lista con tutti i numeri
della prima lista eccetti i multipli di 3 e di 2

pop()

Con il metodo pop() si elimina l'ultimo elemento di una lista. Esempio:

lista = [1, 2, 3, 4, 5, 6, 7]
lista.pop()

il risultato sarà che il contenuto della lista diventerà:

[1, 2, 3, 4, 5, 6]

Se poi vogliamo estrarre un elemento fornendo la posizione, possiamo usare la pop(posizione) indicando la
posizione dell'elemento che vogliamo eliminare. Esempio:

lista = [1, 2, 3, 4, 5, 6, 7]
lista.pop(1)

il risultato sarà che l'elemento in posizione 1 verrà cancellato dalla lista ed il suo contenuto diventerà:

9 / 11
09_Le Liste e le Tuple.md 13/9/2023

[1, 3, 4, 5, 6, 7]

sum()

Per fare la somma dei numeri contenuti in una lista si può fare un ciclo for per tutta la lunghezza della lista è
ogni volta si somma l'elemento ad un variabile come indicato nell'esempio sotto riportato:

lista = [1, 2, 3]
somma = 0
for i in range(0,len(lista)):
somma = somma + lista[i]
print(somma)

il cui risultato che viene stampato con la print, sarà:

Python ci semplifica la vita e ci mette a disposizione una funzione, la funzione sum(nomelista) che da sola
restituisce la somma degli elementi della lista. Provate l'esempio sotto riportato.

lista = [1, 2, 3]
somma = sum(lista)
print (somma)

Le tuple
Parliamo ora molto brevemente delle Tuple. Come le liste si tratta di un gruppo, un insieme di elementi,
definiti stavolta utilizzando una coppia di parentesi tonde. Sono quindi molto simili alle liste (collezione di
dati).

La differenza essenziale è che le tuple sono immutabili mentre le liste non lo sono.

Anche nelle tuple ogni elemento è individuato dalla sua posizione, quindi dal suo indice. Ma, essendo
immutabile, gli elementi di una tupla si possono consultare ma non modificare.

>>> tuple = (2,4,9,15,23)


>>> tuple
(2,4,9,15,23)

>>>tuple[0]
2

>>> del tuple[0]

10 / 11
09_Le Liste e le Tuple.md 13/9/2023

TypeError: 'tuple' object doesn't support item deletion

11 / 11

Potrebbero piacerti anche