Video Corso Base di Python 3

16: I Metodi delle Liste

In questa puntata andremo a concludere il discorso iniziato nella lezione numero 14 sulle Liste, introdurremo infatti svariati metodi legati a questo tipo di dato in modo da poter ottenere il massimo da questo potentissimo strumento.

Questi metodi vanno ad aggiungersi a funzioni quali la funzione len() che abbiamo visto nella lezione precedente, e alle altre modalità di gestione delle Liste utilizzate fin'ora.

Iniziamo anzitutto definendo una Lista, chiamiamola magari inventario, e andiamo ad inserirci alcuni oggetti come se fossimo in un gioco di ruolo:

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

I metodi delle liste si usano in questa maniera:

nome_lista.nome_metodo(eventuali parametri)


Metodo append()

Possiamo aggiungere elementi al nostro inventario mediante append() che andrà ad aggiungere un nuovo elemento passato direttamente alla fine dell'elenco, in questo modo:

inventario.append("frecce")

Se andiamo ora a controllare l'inventario vediamo che abbiamo ora anche le frecce:

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

Possiamo combinare append() con la funzione input e riempire così il nostro inventario fin che ci pare... creiamo una piccola funzione riempi_inventario():

def riempi_inventario():
    inventario = []
    oggetto = ""
    while True:
        oggetto = input('Cosa vuoi aggiungere all\'inventario? ')
        if oggetto == "terminato":
            break
        else:
            inventario.append(oggetto)
                        
    print("Gli oggetto presenti nell'inventario sono: " + str(inventario))

riempi_inventario()

Metodo 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"]
>>> lista_a.extend(lista_b)

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

Metodo 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 dell'istruzione del, in cui possiamo eliminare degli elemanti da una Lista a partire dal loro indice:

>>> del monty[0]

>>> monty
["eggs", "bacon", "bob", "alice", "pluto"]

Utilizziamo quindi remove() in questa maniera:

>>> monty.remove("pluto")
    
>>> monty
["eggs", "bacon", "bob", "alice"]

Possiamo inoltre utilizzare pop() per eliminare l'ultimo elemento della lista:

>>> eggs = ["e","t","w","z"]
>>> eggs.pop()
'z'
>>> eggs
['e', 't', 'w']

Metodo sort()

Il termine "sort" è traducibile in Italiano come ordinare, o classificare. Questo metodo ci consente di ordinare i valori all'interno di una Lista mediante ordine alfabetico in una lista alfabetica, o numerico in caso di una lista numerica:

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

Potete anche ordinare gli elementi al contrario tramite il parametro reverse da passare a sort(), così:

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

O utilizzando direttamente reverse():

>>> spam = [1, 2, 3]
>>> spam.reverse()
>>> spam
[3, 2, 1]

Badate peró che sort() non è in grado di gestire una lista mista tra numeri e lettere... in caso provassimo a fare ció otterremo un errore, provare per credere!


Metodo index()

Il metodo index() ci restituisce invece l'indice di un dato passato, contenuto all'interno della lista; Sempre restando sulla lista numeri:

>>> numeri.index(22)
4

oppure

>>> numeri.index(88)
0

Metodo insert()

Infine parliamo ora del metodo insert(), che ci consente di aggiungere un valore a un dato indice nella lista; i valori della lista si sposteranno quindi di posizione per fare spazio a questo nuovo valore. Insert ci fornisce quindi un maggiore controllo rispetto al metodo append().

Creiamo una nuova lista:

>>> feste = ["capodanno", "pasqua", "ferragosto", "natale"]

Al momento nella lista feste, all'indice 1 troviamo "pasqua". Volendo aggiungere "carnevale" all'indice numero 1, usando insert() facciamo quindi:

>>> feste.insert(1,"carnevale")
>>> feste
['capodanno', 'carnevale', 'pasqua', 'ferragosto', 'natale']

...ed ecco che ora ad indice 1, troviamo carnevale!


Ricapitolando:

  • Utilizziamo i Metodi associati alle liste per poterle gestire nel migliore dei modi
  • Il Metodo append() ci consente di aggiungere un elemento alla fine della lista
  • Il Metodo extend() ci consente di "estendere" una lista, con l'aggiunta di valori provenienti da una seconda lista
  • Il Metodo remove() invece di consente di rimuovere un elemento, a partire dal suo valore
  • Il Metodo pop() ci consente di eliminare l'ultimo elemento della lista
  • Il Metodo sort() ci consente di riordinare gli elementi di una lista
  • Il Metodo reverse() ci consente di invertire l'ordine degli elementi di una lista
  • Il Metodo index() ci permette di ottenere l'indice di un elemento passato
  • Il Metodo insert() ci consente di aggiungere un valore in una posizione prestabilita

Menu della Serie