Articolo originale: Python List Append – How to Add an Element to an Array, Explained with Examples di Estefania Cassingena Navone

Tradotto e adattato da: Dario Di Cillo

Se vuoi imparare a utilizzare il metodo append(), allora questo è l'articolo che fa per te. Questo è senza dubbio un metodo molto importante che potrai utilizzare nei tuoi progetti in Python.

In quest'articolo, imparerai:

  • Perché e quando utilizzare append().
  • Come eseguire il comando.
  • Il suo effetto e il valore restituito.
  • Come può essere equivalente a insert() e allo slicing di una stringa con gli appropriati argomenti.

Troverai esempi sull'utilizzo di append() applicato a stringhe di testo, interi, float, booleani, liste, tuple e dizionari.

Iniziamo! ✨

🔹 Scopo

Con questo metodo puoi aggiungere un singolo elemento alla fine di una  lista.

Ecco un esempio grafico dell'azione di append() :

image-59

💡 Suggerimento: per aggiungere una sequenza di singoli elementi, dovresti utilizzare il metodo extend().

🔸 Sintassi & Parametri

Questa è la sintassi di base di cui hai bisogno per eseguire questo metodo:

append1-3

💡 Suggerimento: il punto è molto importante in quanto append() è un metodo. Per eseguire un metodo, occorre usare il punto dopo la lista per indicare che vogliamo modificare o intervenire su quella specifica lista.

Come puoi vedere, il metodo append() accetta un solo argomento, cioè l'elemento da aggiungere, il quale può essere costituito da qualsiasi tipo di dato:

  • Intero
  • Stringa
  • Float
  • Booleano
  • Un'altra lista
  • Tupla
  • Dizionario
  • Un'istanza di una classe

In pratica, qualsiasi valore presente nel linguaggio Python può essere aggiunto a una lista.

💡 Suggerimento: il primo elemento della sintassi (la lista) è solitamente una variabile che fa riferimento alla lista.

Esempio

Ecco un esempio di come eseguire append():

>>> note_musicali = ["Do", "Re", "Mi", "Fa", "Sol", "La"]
>>> note_musicali.append("Si")
  • Prima di tutto, la lista viene definita e assegnata a una variabile.
  • Poi, utilizzando questa variabile si esegue il metodo append(), usando come argomento l'elemento che vogliamo aggiungere alla fine della lista (la stringa "Si").

🔹 Effetto & Valore restituito

Questo metodo cambia la lista originaria in memoria senza restituire una nuova copia della lista, come potremmo pensare intuitivamente. Eseguendo il metodo append() modifichiamo semplicemente la lista, ottenendo None come valore di ritorno.

Consideriamo l'esempio precedente:

>>> note_musicali = ["Do", "Re", "Mi", "Fa", "Sol", "La"]
>>> note_musicali.append("Si")

Come puoi vedere (sotto), la lista originaria è stata modificata in seguito all'aggiunta dell'elemento "Si", che adesso si trova alla fine della nuova versione della lista.

>>> note_musicali
["Do", "Re", "Mi", "Fa", "Sol", "La", "Si"]

Puoi verificare che il valore di ritorno di  append() è None assegnando questo valore a una variabile e utilizzando il comando print:

>>> note_musicali = ["Do", "Re", "Mi", "Fa", "Sol", "La"]
>>> a = note_musicali.append("Si")
>>> print(a)
None

🔸 Esempi

Adesso che conosci lo scopo, la sintassi e l'effetto del metodo append(), vediamo alcuni esempi pratici del suo utilizzo con vari tipi di dati.

Aggiungere una stringa

>>> top_players = ["gino234", "nor233", "lal453"]
>>> top_players.append("auop342")

# La stringa è stata aggiunta
>>> top_players
['gino234', 'nor233', 'lal453', 'auop342']

Aggiungere un intero

>>> data = [435, 324, 275, 567, 123]
>>> data.append(456)

>>> data
[435, 324, 275, 567, 123, 456]

Aggiungere un float

>>> data = [435.34, 324.35, 275.45, 567.34, 123.23]
>>> data.append(456.23)

>>> data
[435.34, 324.35, 275.45, 567.34, 123.23, 456.23]

Aggiungere un valore booleano

>>> values = [True, True, False, True]
>>> values.append(False)

>>> values
[True, True, False, True, False]

Aggiungere una lista

Questo metodo aggiunge un singolo elemento alla fine di una lista, quindi se utilizzi un'altra lista come argomento, l'intera lista verrà considerata come un singolo elemento e aggiunta (sarà una lista annidata all'interno della lista originaria).

>>> data = [[4.5, 4.8, 5.7], [2.5, 2.6, 2.7]]
>>> data.append([6.7, 2.3])

>>> data
[[4.5, 4.8, 5.7], [2.5, 2.6, 2.7], [6.7, 2.3]]

Aggiungere una tupla

Il funzionamento è analogo nel caso di una tupla, che verrà aggiunta alla fine della lista come singolo elemento.

>>> data = [[4.5, 4.8, 5.7], [2.5, 2.6, 2.7]]
>>> data.append((6.7, 2.3))

>>> data
[[4.5, 4.8, 5.7], [2.5, 2.6, 2.7], (6.7, 2.3)] 

💡 Suggerimento: se hai bisogno di aggiungere alla lista originaria elementi di una lista o di una tupla come singoli elementi, devi utilizzare il metodo extend() anziché append(). Se vuoi saperne di più, puoi leggere l'articolo: Python List Append VS Python List Extend – The Difference Explained with Array Method Examples

Aggiungere un dizionario

Allo stesso modo, se usi un dizionario come argomento di append(), questo verrà aggiunto alla lista come singolo elemento.

>>> data = [{"a": 1, "b": 2}]
>>> data.append({"c": 3, "d": 4})
>>> data
[{'a': 1, 'b': 2}, {'c': 3, 'd': 4}]

🔹 Equivalenza di Append e Insert

L'utilizzo di append() può essere equivalente a quello di insert(), con l'uso degli argomenti appropriati.

Il metodo insert() viene impiegato per inserire un elemento in una lista in una specifica posizione, contrassegnata dal suo indice.

Ecco la sintassi necessaria per eseguire il metodo insert() :

append2

Per essere equivalente ad append():

  • Il valore dell'indice deve corrispondere alla lunghezza della lista (len(<list>)) perché vogliamo che l'elemento sia aggiunto nell'ultima posizione.

Ecco un esempio che mostra il risultato dell'utilizzo di insert() in modo equivalente ad append():

>>> note_musicali = ["Do", "Re", "Mi", "Fa", "Sol", "La"]
>>> note_musicali.insert(len(note_musicali), "Si")
>>> note_musicali
["Do", "Re", "Mi", "Fa", "Sol", "La", "Si"]

Come puoi vedere, append() è più pratico e conciso, così il suo utilizzo è raccomandato in questi casi.

🔸 Equivalenza di Append e Slicing di una lista

Esiste anche un'interessante equivalenza tra il metodo append() e lo slicing di una lista.

append3

Questa sintassi è essenziale per assegnare la lista che contiene l'elemento [<elem>] come ultima parte (fine) della lista. Di seguito puoi vedere come il risultato sia uguale all'uso di append():

>>> note_musicali = ["Do", "Re", "Mi", "Fa", "Sol", "La"]
>>> note_musicali[len(note_musicali):] = ["Si"]
>>> note_musicali
["Do", "Re", "Mi", "Fa", "Sol", "La", "Si"]

Nonostante queste siano alternative interessanti, generalmente l'utilizzo di append() viene preferito, poiché è un prezioso strumento di Python, preciso, conciso e semplice da usare.

Spero che quest'articolo ti sia piaciuto e ti abbia aiutato. Adesso potrai utilizzare il metodo append() nei tuoi progetti in Pyhton.