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 già esistente. Se desideri aggiungere più elementi contemporaneamente alla tua lista o singoli elementi in fondo a essa, puoi usare i metodi Python extend e 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:
ingredienti.insert(1, "zucchero")
PythonIn 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:
ingredienti = ["farina", "uova", "burro"]
ingredienti.insert(0, "zucchero")
print(ingredienti) # Output: ['zucchero', 'farina', 'uova', 'burro']
PythonQui 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. 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:
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]
PythonCerchi una piattaforma per caricare online il tuo sito o un’altra applicazione web in modo possibilmente facile, rapido e senza intoppi? Allora Deploy Now di IONOS è la soluzione perfetta per te!
Due alternative a Python insert
A seconda di cosa vorresti ottenere, esistono alcuni 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:
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']
PythonL’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:
da aggiungere = ["più zucchero", "ancora più zucchero"]
ingredienti = ingredienti[:3] + da aggiungere + ingredienti[3:]
print(ingredienti)
PythonIn 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.