Heim >Backend-Entwicklung >Python-Tutorial >Wie vergleichen sich Lambda-Ausdrücke und Listenverständnisse bei der Berechnung von Unterschieden in Python-Listen?
Unterschiede zwischen Elementen in Python-Listen finden
Das Berechnen der Unterschiede zwischen benachbarten Elementen in einer Liste ist eine häufige Aufgabe bei der Datenanalyse und -bearbeitung. Zwei beliebte Lösungen umfassen Lambda-Ausdrücke und Listenverständnisse.
Lambda-Ausdrücke
Lambda-Ausdrücke bieten eine prägnante Syntax zum Definieren anonymer Funktionen. Um Unterschiede mithilfe eines Lambda-Ausdrucks zu berechnen, können Sie den folgenden Code verwenden:
<code class="python">differences = list(map(lambda x, y: y - x, t[:-1], t[1:]))</code>
Dieser Code iteriert über die Elemente in der Liste t, mit Ausnahme des letzten Elements, und berechnet die Differenz zwischen dem aktuellen und dem nächsten Element mit der Lambda-Funktion Lambda x, y: y - x. Die resultierenden Unterschiede werden in der Differenzenliste gespeichert.
List Comprehensions
List Comprehensions bieten eine kompaktere Möglichkeit, Sequenzen in Python zu definieren. Um mithilfe eines Listenverständnisses eine Liste von Unterschieden zu erstellen, können Sie den folgenden Code verwenden:
<code class="python">differences = [j - i for i, j in zip(t[:-1], t[1:])]</code>
Dieser Code verwendet die Zip-Funktion, um über die Elemente in der Liste t zu iterieren, mit Ausnahme des letzten Elements und der Paare sie als Tupel auf. Jedes Tupel enthält das aktuelle Element und das nächste Element. Das Listenverständnis wendet dann die Subtraktionsoperation auf jedes Tupel an und generiert eine Liste von Unterschieden.
Vergleich
Sowohl Lambda-Ausdrücke als auch Listenverständnisse können zur Berechnung von Unterschieden verwendet werden Python-Listen. Allerdings sind Listenverständnisse für diese spezielle Aufgabe im Allgemeinen prägnanter und lesbarer. Sie vermeiden auch die Notwendigkeit, eine Funktion explizit zu definieren, was in manchen Fällen von Vorteil sein kann.
Beispiel
Gegeben sei die Liste t=[1, 3, 6] , der folgende Code zeigt, wie die Differenzen mit beiden Methoden berechnet werden:
<code class="python">print([j-i for i, j in zip(t[:-1], t[1:])]) # list comprehension print(list(map(lambda x, y: y - x, t[:-1], t[1:]))) # lambda expression</code>
Dieser Code gibt das folgende Ergebnis aus:
[2, 3] [2, 3]
Das obige ist der detaillierte Inhalt vonWie vergleichen sich Lambda-Ausdrücke und Listenverständnisse bei der Berechnung von Unterschieden in Python-Listen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!