Wie man zwei oder mehrere Listen in Python verkettet

Aditya Raj 30 Januar 2023
  1. + zwei Listen in Python verknüpfen
  2. += um zwei Listen in Python zu verknüpfen
  3. itertools.chain Methode verkettet zwei Listen in Python
  4. extend() Methode zum Verketten von Listen in Python
  5. [*a, *b] Entpackungsmethode in Python-Listenverkettung
  6. Schlussfolgerung
Wie man zwei oder mehrere Listen in Python verkettet

Eine Liste in Python ist eine Datenstruktur, die eine geordnete Sammlung von Elementen enthält.

Eine Operation zum Zusammenkleben zweier Listen wird verketten genannt. Sie können zwei Listen in Python entweder in-place oder out-of-place verknüpfen.

Angenommen, wir haben zwei Listen, die verkettet werden sollen,

list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]

Wir könnten mehrere Methoden haben, um sie zu verketten, aber sie unterscheiden sich in der Leistung, wenn die Länge oder die Anzahl der verketteten Listen zunimmt.

Wir stellen diese verschiedenen Methoden vor und geben Ihnen einen Leistungsvergleich.

+ zwei Listen in Python verknüpfen

Der + Operator könnte zwei Listen verknüpfen und eine neue Liste zurückgeben.

>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> result = list1 + list2
>>> result
[1, 2, 3, 4, 5, 6, 7, 8]

+= um zwei Listen in Python zu verknüpfen

+= ist ähnlich wie die obige Methode, aber es werden die Daten der ersten Liste an Ort und Stelle geändert.

>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> list1 += list2
>>> list1
[1, 2, 3, 4, 5, 6, 7, 8]

itertools.chain Methode verkettet zwei Listen in Python

chain aus dem Modul itertools behandelt aufeinanderfolgende Sequenzen als eine einzige Sequenz,

>>> 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]
Informationen
itertools.chain hat einen alternativen Konstruktor - intertools.chain.from_iterable(). Er hat ein einziges iterierbares Argument, dessen Eingaben faul ausgewertet werden.

extend() Methode zum Verketten von Listen in Python

Die Methode List extend erweitert die Liste durch Anhängen von Elementen aus der Iterationsliste.

>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> list1.extend(list2)
>>> list1
[1, 2, 3, 4, 5, 6, 7, 8]

Sie ändert auch die Daten einer bestehenden Liste an Ort und Stelle, anstatt eine neue Liste zurückzugeben.

[*a, *b] Entpackungsmethode in Python-Listenverkettung

Zusätzliches Entpacken wie * für iterierbare Entpack-Operator und ** für Dictionary-Entpack-Operator sind ab Python 3.5 erweitert, wie in PEP-0448 erklärt wird.

>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> result = [*list1, list2]
>>> result
[1, 2, 3, 4, 5, 6, 7, 8]

Diese Methode könnte nicht auf den Fall von N Listen anwendbar sein, es sei denn, Sie möchten jede Liste manuell entpacken.

Warnung
Iterationsfähiges Auspacken kann nicht zum Verständnis verwendet werden, wie unten demonstriert wird.
>>> 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

Schlussfolgerung

Version Vor Ort?
A + B - Nein
list(intertools.chain(a,b)) >=2.3 Nein
[*a, *b] >=3.5 Nein
a += b - Ja
a.extend(b) - Ja

Wir verwenden perfplot Modul bis comapare die Leistung der oben genannten Methoden.

Python-Listenverkettungs-Methoden Leistungsvergleich

Wie in der Grafik gezeigt, sind die Methoden a.extend(b) und a+b in der Leistung fast gleich und die besten unter allen Methoden. Die list(chain(a,b)) Methode hat die schlechteste Performance.

Autor: Aditya Raj
Aditya Raj avatar Aditya Raj avatar

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.

GitHub

Verwandter Artikel - Python List