Come unire due elenchi in Python (concatenare ed estendere)

Scopri i modi migliori per unire e combinare due elenchi in Python. Confronta l'operatore più, il metodo di estensione, l'elenco di decompressione e le opzioni della catena.

Prova questa soluzione nell'editor

Panoramica

La combinazione di set di dati di elenchi è un'operazione frequente quando si aggregano risultati, si elaborano batch di dati o si aggiungono elementi a una raccolta. Python offre diversi modi per unire gli elenchi, a seconda che tu voglia modificare un elenco sul posto o creare un nuovo elenco.

Per creare un nuovo elenco combinando due esistenti, l'approccio più semplice è utilizzare l'operatore di concatenazione `+` (ad esempio, `list3 = list1 + list2`). In alternativa, inPython 3.5+, puoi utilizzare la sintassi di decompressione delle liste `[*list1, *list2]`, che è altamente espressiva e ti consente di inserire facilmente elementi aggiuntivi ovunque nella creazione della lista.

Se vuoi modificare un elenco esistente sul posto aggiungendo elementi da un altro elenco, il metodo `.extend()` è la scelta più efficiente. Ciò evita l'allocazione di memoria per un nuovo elenco e modifica direttamente l'elenco di destinazione. Per un attraversamento efficiente della memoria degli elenchi uniti senza duplicare i dati in memoria, puoi utilizzare `itertools.chain()`.

Codice e output di esecuzione

Questo script dimostra l'unione di due elenchi utilizzando operatori, tecniche di estensione e decompressione.

merge_lists.py
Prova nell'editor
list_a = [1, 2, 3]
list_b = [4, 5, 6]

# 1. Plus operator (creates a new list)
merged_plus = list_a + list_b
print("Using + operator:", merged_plus)

# 2. Unpacking operator (creates a new list)
merged_unpack = [*list_a, *list_b]
print("Using unpacking:", merged_unpack)

# 3. Extend method (modifies list_a in-place)
list_a.extend(list_b)
print("After extending list_a:", list_a)
Uscita terminale
Using + operator: [1, 2, 3, 4, 5, 6]
Using unpacking: [1, 2, 3, 4, 5, 6]
After extending list_a: [1, 2, 3, 4, 5, 6]

Implementazione passo dopo passo

  • Utilizza l'operatore + per unire gli elenchi e restituire un nuovo elenco combinato.
  • Chiama list_a.extend(list_b) per aggiungere tutti gli elementi di list_b direttamente in list_a.
  • Utilizzare l'operatore di decompressione dell'asterisco [*list_a, *list_b] per costruire un elenco dagli elementi di entrambi.

Domande frequenti

Qual è la differenza tra append() ed extend()?

append() aggiunge l'intero argomento della lista come un singolo elemento nidificato, mentre extend() decomprime l'argomento della lista e aggiunge ciascun elemento individualmente.

Come posso unire gli elenchi rimuovendo i duplicati?

Puoi unirli e quindi trasmettere il risultato a un set o convertirli prima in set: list(set(list_a) | set(list_b)).

Argomenti correlati

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.