Aggiungere elementi a una lista (array) in Python: append(), extend(), insert()

Attività commerciale

Per aggiungere un elemento ad una lista (array) di tipo list in Python, o per combinare un'altra lista, usate i metodi list append(), extend(), e insert(). Potete anche usare l'operatore + o slice per specificare una posizione e assegnarla.

Le seguenti informazioni sono fornite qui.

  • Aggiungere elementi alla fine:append()
  • Unire un'altra lista o tupla alla fine (concatenazione): extend(),+operatore
  • Aggiunge (inserisce) un elemento nella posizione specificata.:insert()
  • Aggiungere (inserire) un'altra lista o tupla nella posizione specificata:fetta

Aggiungere elementi alla fine: append()

Usando il metodo append() della lista, potete aggiungere elementi alla fine (ultimo). Se vuoi aggiungerlo in una posizione diversa dalla fine, come l'inizio, usa insert() come descritto sotto.

l = list(range(3))
print(l)
# [0, 1, 2]

l.append(100)
print(l)
# [0, 1, 2, 100]

l.append('new')
print(l)
# [0, 1, 2, 100, 'new']

Le liste sono anche aggiunte come un singolo elemento. Non vengono combinate.

l.append([3, 4, 5])
print(l)
# [0, 1, 2, 100, 'new', [3, 4, 5]]

Unire un'altra lista o tupla alla fine (concatenazione): extend(), +operatore

Con il metodo extend() della lista, potete unire un'altra lista o tupla alla fine (la fine). Tutti gli elementi saranno aggiunti alla fine della lista originale.

l = list(range(3))
print(l)
# [0, 1, 2]

l.extend([100, 101, 102])
print(l)
# [0, 1, 2, 100, 101, 102]

l.extend((-1, -2, -3))
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3]

Notate che ogni carattere (elemento) viene aggiunto alla stringa un carattere alla volta.

l.extend('new')
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w']

È anche possibile concatenare usando l'operatore + invece del metodo extend().

+, viene restituito un nuovo elenco.+=Questo vi permetterà anche di aggiungerlo ad una lista esistente.

l2 = l + [5, 6, 7]
print(l2)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w', 5, 6, 7]

l += [5, 6, 7]
print(l)
# [0, 1, 2, 100, 101, 102, -1, -2, -3, 'n', 'e', 'w', 5, 6, 7]

Aggiunge (inserisce) un elemento nella posizione specificata.: insert()

Il metodo insert() della lista può aggiungere (inserire) un elemento in una posizione specificata.

Il primo argomento specifica la posizione e il secondo argomento specifica l'elemento da inserire. La prima posizione (iniziale) è 0; per i valori negativi, -1 è l'ultima posizione (finale).

l = list(range(3))
print(l)
# [0, 1, 2]

l.insert(0, 100)
print(l)
# [100, 0, 1, 2]

l.insert(-1, 200)
print(l)
# [100, 0, 1, 200, 2]

Come con append(), la lista viene aggiunta come un singolo elemento. Non sarà unito.

l.insert(0, [-1, -2, -3])
print(l)
# [[-1, -2, -3], 100, 0, 1, 200, 2]

Si noti che insert() non è un'operazione efficiente perché richiede i seguenti costi. Vedere la seguente pagina sul wiki ufficiale per la complessità computazionale delle varie operazioni della lista.
O(n)

O(1)
Il tipo deque è fornito nel modulo collections della libreria standard come un tipo per aggiungere elementi all'inizio a questo costo. Per esempio, se volete trattare i dati come una coda (FIFO), è più efficiente usare deque.

Aggiungere (inserire) un'altra lista o tupla nella posizione specificata: fetta

Se specificate un intervallo con una fetta e assegnate un'altra lista o tupla, tutti gli elementi saranno aggiunti (inseriti).

l = list(range(3))
print(l)
# [0, 1, 2]

l[1:1] = [100, 200, 300]
print(l)
# [0, 100, 200, 300, 1, 2]

Potete anche sostituire l'elemento originale. Tutti gli elementi nell'intervallo specificato saranno sostituiti.

l = list(range(3))
print(l)
# [0, 1, 2]

l[1:2] = [100, 200, 300]
print(l)
# [0, 100, 200, 300, 2]