So subtrahieren Sie zwei Listen in Python [duplizieren]

7

Ich kann nicht herausfinden, wie man eine Funktion in Python erstellt, die dies berechnen kann:

%Vor%

und das Ergebnis sollte eine neue Liste sein, die List2 von List1 subtrahiert, List3=[0,-2,4] ! Ich weiß, dass ich irgendwie die Zip-Funktion benutzen muss. Dadurch bekomme ich: ([(3,3), (5,7), (6,2)]) , aber ich weiß nicht, was ich jetzt tun soll?

    
Linus Svendsson 19.11.2011, 12:50
quelle

5 Antworten

15

Versuchen Sie Folgendes:

%Vor%

Dies verwendet zip , Listenübersetzungen und Destrukturierung.

    
Matt Fenwick 19.11.2011 12:54
quelle
9

Diese Lösung verwendet numpy . Es ist nur sinnvoll für größere Listen, da einige Overhead die numpigen Arrays instanziieren. OTOH, für alles andere als kurze Listen, wird dies blitzschnell sein.

%Vor%     
mac 19.11.2011 14:11
quelle
6

Sie können das Listenverständnis verwenden, wie von @Matt vorgeschlagen. Sie können auch iertools verwenden - genauer gesagt, die Funktion imap() :

%Vor%

Wie alle Funktionen von itertools gibt imap() einen Iterator zurück. Sie können eine Liste erstellen, die sie als Parameter für den list() -Konstruktor übergibt:

%Vor%

BEARBEITEN : Wie von @Cat unten vorgeschlagen, wäre es besser, die Funktion operator.sub() mit imap() :

zu verwenden %Vor%     
brandizzi 19.11.2011 13:09
quelle
3

Noch eine andere Lösung:

%Vor%

HINZUFÜGEN: Suchen Sie einfach nach der Python-Referenz von map und Sie werden sehen, dass Sie mehr als einen iterierbaren Code an map

übergeben können     
starrify 19.11.2011 13:15
quelle
0

Sie können es auf folgende Weise tun

%Vor%

, das [0, -2, 4]

ausgibt     
Anjaneyulu Batta 02.06.2016 17:54
quelle

Tags und Links