Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich das elementweise Hinzufügen von Listen in Python effizient durchführen?

Wie kann ich das elementweise Hinzufügen von Listen in Python effizient durchführen?

Linda Hamilton
Freigeben: 2024-12-05 06:58:14
Original
820 Leute haben es durchsucht

How Can I Efficiently Perform Element-Wise Addition of Lists in Python?

Elementweise Addition von Listen: Pythonische Effizienz

Bei der Manipulation von Listen besteht häufig die Notwendigkeit, elementweise Operationen durchzuführen. Betrachten Sie die Aufgabe, Elemente zweier Listen positionell hinzuzufügen, wie unten gezeigt:

list1 = [1, 2, 3]
list2 = [4, 5, 6]
Nach dem Login kopieren

Die gewünschte Ausgabe ist:

[1, 2, 3]
+  +  +
[4, 5, 6]
|| || ||
[5, 7, 9]
Nach dem Login kopieren

Um diese elementweise Addition zu erreichen, gibt es mehrere pythonische Ansätze :

Methode 1: „operator.add“ und „map“

Das Modul „operator.add“ stellt Folgendes bereit notwendige Funktionalität für elementweise Addition. Mithilfe der Kartenfunktion können Sie beide Listen gleichzeitig durchlaufen und den Add-Vorgang anwenden:

from operator import add
result = list(map(add, list1, list2))
Nach dem Login kopieren

Methode 2: ZIP und Listenverständnis

Die ZIP-Funktion kombiniert Elemente von Listen zu Tupeln, die in einem Listenverständnis weiter manipuliert werden können. Bei diesem Ansatz werden Werte aus den Tupeln extrahiert und summiert:

result = [sum(x) for x in zip(list1, list2)]
Nach dem Login kopieren

Leistungsüberlegungen

Die Wahl der Methode kann von den Leistungsanforderungen abhängen. Die folgenden Zeitvergleiche zeigen, dass der Ansatz „map(add, list1, list2)“ für große Listen am schnellsten ist. Die zip-basierten Methoden sind aufgrund der zusätzlichen Tupelmanipulation langsamer.

Zum Beispiel bei Listen mit jeweils 100.000 Elementen:

%timeit from operator import add;map(add, list1, list2)
10 loops, best of 3: 44.6 ms per loop
%timeit from itertools import izip; [a + b for a, b in izip(list1, list2)]
10 loops, best of 3: 71 ms per loop
%timeit [a + b for a, b in zip(list1, list2)]
10 loops, best of 3: 112 ms per loop
Nach dem Login kopieren

Für komplexere Vorgänge können zusätzliche Methoden erforderlich sein. Für die einfache Aufgabe der elementweisen Addition bieten die oben beschriebenen Ansätze jedoch die pythonischsten und effizientesten Lösungen.

Das obige ist der detaillierte Inhalt vonWie kann ich das elementweise Hinzufügen von Listen in Python effizient durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage