# Python insert: come inserire elementi nelle liste

Python offre un’ampia gamma di metodi integrati che semplificano e velocizzano l’implementazione del tuo programma. Fra questi esiste il metodo insert mediante il quale puoi aggiungere un singolo elemento a una [lista in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/liste-in-python/) già esistente. Se desideri aggiungere più elementi contemporaneamente alla tua lista o singoli elementi in fondo a essa, puoi usare i metodi [Python extend](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/python-extend/) e [Python append](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/python-append/).

## Python insert: sintassi, parametri e funzionamento

Il metodo insert usa come parametro due valori: il primo è l’elemento da inserire e il secondo è l’indice in cui verrà inserito l’elemento. Poiché le liste di Python sono eterogenee, questo elemento può contenere tipi di dati a piacere (ad esempio una lista, un integer, ecc.). L’indice deve essere invece inserito come integer (numero intero). La seguente riga di codice mostra la **sintassi di insert**:

```Python
ingredienti.insert(1, "zucchero")
```

In questo esempio la stringa (in italiano: “sequenza di caratteri”) `"zucchero"` viene aggiunta in posizione 1 nella lista `ingredienti`. L’indice in cui deve essere inserito l’elemento (la stringa) viene passato come primo argomento, l’elemento stesso come secondo. Come al solito, entrambi i parametri possono essere passati direttamente o impostati come variabili prima di chiamare il metodo. L’esempio seguente illustra come funziona il metodo:

```Python
ingredienti = ["farina", "uova", "burro"]
ingredienti.insert(0, "zucchero")
print(ingredienti)   # Output: ['zucchero', 'farina', 'uova', 'burro']
```

Qui la lista di ingredienti viene ampliata con due elementi ulteriori da aggiungere agli indici 0 e 2. È importante osservare che **l’indicizzazione in Python comincia con lo 0**, come nella maggior parte dei linguaggi di programmazione. Questo significa che il primo elemento possiede l’indice 0, il secondo l’indice 1 e così via. Se un elemento viene aggiunto a una lista mediante `insert()` è necessario prima fargli spazio. Per creare questo spazio, l’elemento già presente nell’indice e tutti i suoi successori vengono **spostati di una posizione a destra**.

Se l’indice specificato si trova al di fuori dell’intervallo valido della lista (ad esempio è maggiore del numero di elementi nella lista stessa), l’elemento viene semplicemente inserito alla fine dell’elenco. In tal caso `insert()` si comporta in modo identico al metodo [append di Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/python-append/). Specificando tuttavia un indice negativo, tale numero viene interpretato **come distanza dalla fine della lista**. Ad esempio, `-1` corrisponde al penultimo elemento, `-2` a quello precedente e così via. Mostriamo le due caratteristiche nel seguente esempio:

```Python
ingredienti.insert(10, "lievito")
print(ingredienti) # Output: ['zucchero', 'farina', 'uova', 'burro', 'lievito]
ingredienti.insert(-2, "sale")
print(ingredienti) # Output: ['zucchero', 'farina', 'uova', 'sale', 'burro', 'lievito]
```

Consiglio Cerchi una piattaforma per caricare online il tuo sito o un’altra applicazione web in modo possibilmente facile, rapido e senza intoppi? Allora [Deploy Now](https://www.ionos.it/hosting/deploy-now "Deploy Now di IONOS") di IONOS è la soluzione perfetta per te!

## Due alternative a Python insert

A seconda di cosa vorresti ottenere, esistono alcuni [operatori Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/operatori-python/), che puoi usare come alternativa a `insert()`. Te ne presentiamo due.

### L’operatore index

L’operatore index consente di **leggere o sovrascrivere** un elemento a un indice specificato in una lista. Mediante questo operatore è quindi possibile sostituire l’elemento di una lista con un altro. L’esempio qui sotto evidenzia come:

```Python
print(ingredienti) # Output: ['zucchero', 'farina', 'uova', 'sale', 'burro', 'lievito]
ingredienti[2] = "bicarbonato di sodio"
print(ingredienti) # Output: ['zucchero', 'farina', 'bicarbonato di sodio', 'sale', 'burro', 'lievito']
```

### L’operatore slice

Se invece non desideri cancellare alcun elemento dalla lista o magari vorresti inserire diversi elementi contemporaneamente al centro della lista stessa, consigliamo di usare l’operatore slice.

A differenza dell’operatore index, slice non restituisce un singolo elemento di una lista, ma una sottosequenza della lista. Quindi dalla nostra lista `ingredienti` potremmo prendere gli elementi da 3 a 5 dell’indice e quindi ottenere la sottosequenza `['sale', 'burro', 'lievito']`. Nell’esempio di seguito ti mostreremo come puoi usare l’operatore slice per inserire un numero di elementi a piacere al centro della lista:

```Python
da aggiungere = ["più zucchero", "ancora più zucchero"]
ingredienti = ingredienti[:3] + da aggiungere + ingredienti[3:]
print(ingredienti)
# Output: ['zucchero', 'farina', 'bicarbonato di sodio', 'più zucchero', 'ancora più zucchero', 'sale, 'burro', 'lievito']
```

In questo caso, la lista `da aggiungere` è stata inserita in mezzo alla lista `ingredienti`. Per fare questo, abbiamo prima usato l’operatore slice per prendere tutti gli elementi di `ingredienti` fino all’indice 3 e li abbiamo concatenati con `da aggiungere`. Poi abbiamo preso tutti gli elementi di `ingredienti` a partire dall’indice 3 e abbiamo concatenato di nuovo la nostra lista con questo. Infine, abbiamo sovrascritto `ingredienti` con la lista risultante da questa doppia concatenazione.

È importante notare che questa soluzione richiede molti passaggi, poiché l’intero elenco viene sovrascritto. Questo va tenuto in considerazione quando si lavora con liste molto grandi e se si vuole mantenere l’efficienza del programma.


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