# Append di Python: ampliare le liste facilmente

Il metodo append può essere usato per aggiungere un elemento in fondo a una [lista di Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/liste-in-python/). Se desideri inserire più elementi contemporaneamente o aggiungere un elemento a un determinato indice puoi usare il metodo [Python extend](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/python-extend/) e [Python insert](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/python-insert/).

## Il metodo append di Python: come funziona?

Il metodo append ti consente di **aggiungere un elemento alla fine di una lista preesistente**. L’elemento da aggiungere 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:

```Python
lista.append(elemento)
```

Qui `lista` è il nome della lista, mentre `elemento` è l’elemento da aggiungere. Nel seguente esempio, elementi di diversi tipi di dati vengono aggiunti alla stessa lista:

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

Com’è possibile vedere nell’esempio sopra, `append()` consente di aggiungere un elemento **di un tipo di dati a piacere** a una lista in Python. Puoi inserire l’elemento da aggiungere direttamente come parametro o specificarlo prima come variabile e poi passare la variabile. Provando tuttavia ad aggiungere più elementi contemporaneamente mediante `append()`, questo metodo mostra dei limiti. L’esempio qui sotto chiarisce il perché:

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

In questo caso la lista `lista2` viene passata come parametro quando viene chiamato il metodo. Invece di aggiungere all’altra lista gli elementi contenuti in `lista2`, il metodo aggiunge semplicemente `lista2` come singolo elemento. In tal modo viene a crearsi una lista scorretta, diversamente da quanto voluto. Puoi risolvere questo problema iterando con un [ciclo for su Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/ciclo-for-su-python/) sulla `lista2` e inserendo ogni singolo elemento.

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

Questa soluzione non è la migliore. Pertanto in casi come questo sarebbe meglio utilizzare extend di Python, in quanto può aggiungere più elementi contemporaneamente a una lista.

## Impiego su altre strutture di dati

Nonostante 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 differenze importanti alle quali fare attenzione.

### Array

Gli [array in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/array-in-python/) non appartengono alla libreria standard e devono essere importati da un modulo Python esterno come `numpy` o `array`. Se per te è importante **garantire l’efficienza della memoria e la RAM del tuo computer**, allora gli array rappresentano 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 conseguenza, con il metodo append è impossibile aggiungere a un array elementi di diverso tipo. L’esempio di seguito evidenzia come:

```Python
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
```

Inoltre, è importante ricordare che gli array hanno una lunghezza fissa, la quale viene impostata quando viene creata la struttura dati e che non può essere modificata in seguito. Creando quindi l’array `[1, 2, 3, 4, 5]`, questo ha una lunghezza pari a 5. Mediante `append()`, Python permette di aggiungere un ulteriore elemento a un array. Tuttavia, in background l’intero array viene **cancellato e ricostruito con l’elemento aggiuntivo**. È necessario tenere in considerazione questo aspetto se si vogliono usare le risorse del sistema in modo efficiente.

### 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 (abbreviazione di *double-ended queue*) è un elenco in cui è possibile aggiungere 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 aggiuntivo, appendleft(). A differenza di append(), questo metodo inserisce l’elemento sul lato sinistro della deque.

```Python
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])
```

## Esempio di utilizzo: come usare append()

Sebbene sia possibile utilizzare il metodo append di Python solo per aggiungere singoli elementi alla fine di un elenco, tale metodo è perfetto se desideri eseguire altri passaggi aggiungendo un elemento. Un altro caso viene illustrato 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.

```Python
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]
```

Come puoi vedere, append() è un metodo molto utile se gli elementi vengono aggiunti e **trattati singolarmente**.

Consiglio Desideri gestire il tuo sito web o un’altra applicazione web in modo rapido, semplice e diretto tramite Git? Allora [Deploy Now](https://www.ionos.it/hosting/deploy-now "Deploy Now di IONOS") di IONOS è la piattaforma perfetta per te.


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/python-append/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/python-append/) for AI/LLM consumption.