Python offre un’ampia gamma di metodi integrati che sem­pli­fi­ca­no e ve­lo­ciz­za­no l’im­ple­men­ta­zio­ne del tuo programma. Fra questi esiste il metodo insert mediante il quale puoi ag­giun­ge­re un singolo elemento a una lista in Python già esistente. Se desideri ag­giun­ge­re più elementi con­tem­po­ra­nea­men­te alla tua lista o singoli elementi in fondo a essa, puoi usare i metodi Python extend e Python append.

Python insert: sintassi, parametri e fun­zio­na­men­to

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 ete­ro­ge­nee, 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:

ingredienti.insert(1, "zucchero")
Python

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 di­ret­ta­men­te o impostati come variabili prima di chiamare il metodo. L’esempio seguente illustra come funziona il metodo:

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

Qui la lista di in­gre­dien­ti viene ampliata con due elementi ulteriori da ag­giun­ge­re agli indici 0 e 2. È im­por­tan­te osservare che l’in­di­ciz­za­zio­ne in Python comincia con lo 0, come nella maggior parte dei linguaggi di pro­gram­ma­zio­ne. 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() è ne­ces­sa­rio prima fargli spazio. Per creare questo spazio, l’elemento già presente nell’indice e tutti i suoi suc­ces­so­ri vengono spostati di una posizione a destra.

Se l’indice spe­ci­fi­ca­to si trova al di fuori dell’in­ter­val­lo valido della lista (ad esempio è maggiore del numero di elementi nella lista stessa), l’elemento viene sem­pli­ce­men­te inserito alla fine dell’elenco. In tal caso insert() si comporta in modo identico al metodo append di Python. Spe­ci­fi­can­do tuttavia un indice negativo, tale numero viene in­ter­pre­ta­to come distanza dalla fine della lista. Ad esempio, -1 cor­ri­spon­de al penultimo elemento, -2 a quello pre­ce­den­te e così via. Mostriamo le due ca­rat­te­ri­sti­che nel seguente esempio:

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

Cerchi una piat­ta­for­ma per caricare online il tuo sito o un’altra ap­pli­ca­zio­ne web in modo pos­si­bil­men­te facile, rapido e senza intoppi? Allora Deploy Now di IONOS è la soluzione perfetta per te!

Due al­ter­na­ti­ve a Python insert

A seconda di cosa vorresti ottenere, esistono alcuni operatori Python, che puoi usare come al­ter­na­ti­va a insert(). Te ne pre­sen­tia­mo due.

L’operatore index

L’operatore index consente di leggere o so­vra­scri­ve­re un elemento a un indice spe­ci­fi­ca­to in una lista. Mediante questo operatore è quindi possibile so­sti­tui­re l’elemento di una lista con un altro. L’esempio qui sotto evidenzia come:

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

L’operatore slice

Se invece non desideri can­cel­la­re alcun elemento dalla lista o magari vorresti inserire diversi elementi con­tem­po­ra­nea­men­te al centro della lista stessa, con­si­glia­mo di usare l’operatore slice.

A dif­fe­ren­za dell’operatore index, slice non re­sti­tui­sce un singolo elemento di una lista, ma una sot­to­se­quen­za della lista. Quindi dalla nostra lista ingredienti potremmo prendere gli elementi da 3 a 5 dell’indice e quindi ottenere la sot­to­se­quen­za ['sale', 'burro', 'lievito']. Nell’esempio di seguito ti mo­stre­re­mo come puoi usare l’operatore slice per inserire un numero di elementi a piacere al centro della lista:

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

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 con­ca­te­na­ti con da aggiungere. Poi abbiamo preso tutti gli elementi di ingredienti a partire dall’indice 3 e abbiamo con­ca­te­na­to di nuovo la nostra lista con questo. Infine, abbiamo so­vra­scrit­to ingredienti con la lista ri­sul­tan­te da questa doppia con­ca­te­na­zio­ne.

È im­por­tan­te notare che questa soluzione richiede molti passaggi, poiché l’intero elenco viene so­vra­scrit­to. Questo va tenuto in con­si­de­ra­zio­ne quando si lavora con liste molto grandi e se si vuole mantenere l’ef­fi­cien­za del programma.

Vai al menu prin­ci­pa­le