Il metodo append può essere usato per ag­giun­ge­re un elemento in fondo a una lista di Python. Se desideri inserire più elementi con­tem­po­ra­nea­men­te o ag­giun­ge­re un elemento a un de­ter­mi­na­to indice puoi usare il metodo Python extend e Python insert.

Il metodo append di Python: come funziona?

Il metodo append ti consente di ag­giun­ge­re un elemento alla fine di una lista pre­e­si­sten­te. L’elemento da ag­giun­ge­re può contenere qualsiasi tipo di dato. Ad esempio, puoi compilare le liste Python con tipi di dati semplici (come numeri interi, numeri in virgola mobile, ecc.) oppure con tipi di dati più complessi (ad esempio con altre liste).

Tale metodo presenta la seguente sintassi:

lista.append(elemento)
Python

Qui lista è il nome della lista, mentre elemento è l’elemento da ag­giun­ge­re. Nel seguente esempio, elementi di diversi tipi di dati vengono aggiunti alla stessa lista:

lista = [1, 2, 3]
lista.append(4)
numero = "cinque"
lista.append(numero)
print(lista)   # Output: [1, 2, 3, 4, 'cinque']
Python

Com’è possibile vedere nell’esempio sopra, append() consente di ag­giun­ge­re un elemento di un tipo di dati a piacere a una lista in Python. Puoi inserire l’elemento da ag­giun­ge­re di­ret­ta­men­te come parametro o spe­ci­fi­car­lo prima come variabile e poi passare la variabile. Provando tuttavia ad ag­giun­ge­re più elementi con­tem­po­ra­nea­men­te mediante append(), questo metodo mostra dei limiti. L’esempio qui sotto chiarisce il perché:

lista2 = [6, 7]
lista.append(lista2)
print(lista)   # output: [1, 2, 3, 4, 'cinque', [6, 7]]
Python

In questo caso la lista lista2 viene passata come parametro quando viene chiamato il metodo. Invece di ag­giun­ge­re all’altra lista gli elementi contenuti in lista2, il metodo aggiunge sem­pli­ce­men­te lista2 come singolo elemento. In tal modo viene a crearsi una lista scorretta, di­ver­sa­men­te da quanto voluto. Puoi risolvere questo problema iterando con un ciclo for su Python sulla lista2 e inserendo ogni singolo elemento.

for numero in lista2:
    lista.append(numero)
print(lista)    # Output: [1, 2, 3, 4, 'cinque', [6, 7], 6, 7]
Python

Questa soluzione non è la migliore. Pertanto in casi come questo sarebbe meglio uti­liz­za­re extend di Python, in quanto può ag­giun­ge­re più elementi con­tem­po­ra­nea­men­te a una lista.

Impiego su altre strutture di dati

No­no­stan­te il metodo append di Python sia quello più usato per gestire le varie liste, può essere usato anche con altre strutture di dati comuni. Tuttavia, ci sono un paio di dif­fe­ren­ze im­por­tan­ti alle quali fare at­ten­zio­ne.

Array

Gli array in Python non ap­par­ten­go­no alla libreria standard e devono essere importati da un modulo Python esterno come numpy o array. Se per te è im­por­tan­te garantire l’ef­fi­cien­za della memoria e la RAM del tuo computer, allora gli array rap­pre­sen­ta­no spesso una scelta ideale. Gli array sono un po’ più limitati poiché possono solo contenere elementi che hanno lo stesso tipo di dato. Questo tipo di dati viene stabilito durante la creazione dell’array. Di con­se­guen­za, con il metodo append è im­pos­si­bi­le ag­giun­ge­re a un array elementi di diverso tipo. L’esempio di seguito evidenzia come:

import numpy as np
array1 = np.array('i', [100, 101, 102])
array1.append(103)
print(array1)
# Output: array('i', [100, 101, 102, 103])
array1.append('a')   # Questa riga crea un messaggio di errore
Python

Inoltre, è im­por­tan­te ricordare che gli array hanno una lunghezza fissa, la quale viene impostata quando viene creata la struttura dati e che non può essere mo­di­fi­ca­ta in seguito. Creando quindi l’array [1, 2, 3, 4, 5], questo ha una lunghezza pari a 5. Mediante append(), Python permette di ag­giun­ge­re un ulteriore elemento a un array. Tuttavia, in back­ground l’intero array viene can­cel­la­to e ri­co­strui­to con l’elemento ag­giun­ti­vo. È ne­ces­sa­rio tenere in con­si­de­ra­zio­ne questo aspetto se si vogliono usare le risorse del sistema in modo ef­fi­cien­te.

Deque

Anche per le strutture di dati deque esiste un metodo append che si comporta in modo molto simile alle liste e agli array. Un deque (ab­bre­via­zio­ne di double-ended queue) è un elenco in cui è possibile ag­giun­ge­re o rimuovere elementi alla fine o all’inizio della lista. In questo caso il metodo append si comporta in modo identico a quello di una lista, ma esiste anche un metodo ag­giun­ti­vo, ap­pend­left(). A dif­fe­ren­za di append(), questo metodo inserisce l’elemento sul lato sinistro della deque.

from collections import deque
numeri_naturali = deque([1, 2, 3])
numeri_naturali.append(4)
numeri_naturali.appendleft(0)
print(numeri_naturali)   # Output: deque([0, 1, 2, 3, 4])
Python

Esempio di utilizzo: come usare append()

Sebbene sia possibile uti­liz­za­re il metodo append di Python solo per ag­giun­ge­re singoli elementi alla fine di un elenco, tale metodo è perfetto se desideri eseguire altri passaggi ag­giun­gen­do un elemento. Un altro caso viene il­lu­stra­to nel seguente esempio: qui è presente un elenco di grandi numeri. Ogni numero viene diviso per 7 e il numero restante viene aggiunto a una seconda lista.

grandi_numeri = [2141, 5683, 456, 789, 120, 101, 89005]
numero restante  = []
for numero in grandi_numeri:
    numero restante.append(numero % 7)
print(grandi_numeri)    # Output: [2141, 5683, 456, 789, 120, 101, 89005]
print(numero restante)    # Output: [6, 6, 1, 5, 1, 3, 0]
Python

Come puoi vedere, append() è un metodo molto utile se gli elementi vengono aggiunti e trattati sin­go­lar­men­te.

Consiglio

Desideri gestire il tuo sito web o un’altra ap­pli­ca­zio­ne web in modo rapido, semplice e diretto tramite Git? Allora Deploy Now di IONOS è la piat­ta­for­ma perfetta per te.

Vai al menu prin­ci­pa­le