Come concatenare due o più liste in Python
-
+
per concatenare due liste in Python -
+=
per concatenare due liste in Python -
Il metodo
itertools.chain
concatenerà due liste in Python -
extend()
metodo per concatenare liste in Python -
Metodo
[*a, *b]
disimballaggio nella concatenazione di liste Python - Conclusione
Una lista in Python è una struttura di dati che contiene una raccolta ordinata di elementi.
Un’operazione per incollare due liste insieme è chiamata concatenazione. Si possono concatenare due liste in Python sia in-place che out-of-place.
Supponiamo di avere due liste da concatenare,
list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]
Potremmo avere più metodi per concatenarli, ma si differenziano per le prestazioni quando la lunghezza aumenta o il numero di liste concatenate aumenta.
Introdurremo questi diversi metodi e vi daremo il confronto delle prestazioni.
+
per concatenare due liste in Python
L’operatore +
potrebbe concatenare due liste e restituirne una nuova.
>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> result = list1 + list2
>>> result
[1, 2, 3, 4, 5, 6, 7, 8]
+=
per concatenare due liste in Python
+=
è simile al metodo di cui sopra, ma cambierà i dati della prima lista in vigore.
>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> list1 += list2
>>> list1
[1, 2, 3, 4, 5, 6, 7, 8]
Il metodo itertools.chain
concatenerà due liste in Python
chain
dal modulo itertools
tratta le sequenze consecutive come una singola sequenza,
>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> import itertools
>>> result = list(itertools.chain(list1, list2))
[1, 2, 3, 4, 5, 6, 7, 8]
itertools.chain
ha un costruttore alternativo - intertools.chain.from_iterable()
. Ha un singolo argomento iterabile i cui input sono valutati pigramente.extend()
metodo per concatenare liste in Python
Il metodo extend
estende la lista aggiungendo elementi dall’iterabile.
>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> list1.extend(list2)
>>> list1
[1, 2, 3, 4, 5, 6, 7, 8]
Cambia anche i dati della lista esistente in-place piuttosto che restituire una nuova lista.
Metodo [*a, *b]
disimballaggio nella concatenazione di liste Python
Ulteriori operazioni di disimballaggio come *
per l’operatore di disimballaggio iterabile e **
per l’operatore di disimballaggio del dizionario sono estese da Python 3.5 come spiegato in PEP-0448.
>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> result = [*list1, list2]
>>> result
[1, 2, 3, 4, 5, 6, 7, 8]
Questo metodo non potrebbe essere applicabile al caso delle N liste, a meno che non si voglia scompattare ogni lista manualmente.
>>> A = [1,2,3]
>>> B = [4,5,6]
>>> C = [7,8,9]
>>> [*t for t in [A,B,C]]
SyntaxError: iterable unpacking cannot be used in comprehension
Conclusione
Versione | Sul posto? | |
---|---|---|
a + b |
- | No |
list(intertools.chain(a,b)) |
>=2.3 | No |
[*a, *b] |
>=3.5 | No |
a += b |
- | Sì |
a.extend(b) |
- | Sì |
Usiamo perfplot
module per comapare le prestazioni dei metodi di cui sopra.
Come mostrato nel grafico, i metodi a.extend(b)
e a+b
sono quasi gli stessi nelle prestazioni e il migliore tra tutti i metodi. Il metodo list(chain(a,b))
ha le peggiori prestazioni.
Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.
GitHubArticolo correlato - Python List
- Converti un dizionario in una lista in Python
- Rimuovi i duplicati dall'lista in Python
- Rimuovi tutte le occorrenze di un elemento da una lista in Python
- Ottieni la media di una lista in Python
- Qual è la differenza tra i metodi di elencazione, aggiungere ed estendere
- Come convertire una lista in stringa in Python