[Road to Intermediate Python] Verwenden Sie Lambda-Ausdrücke

Link zur Zusammenfassung

https://qiita.com/ganariya/items/fb3f38c2f4a35d1ee2e8

Einführung

Um Python zu studieren, habe ich eine Group Intelligence Library namens acopy kopiert.

In acopy werden viele interessante Python-Grammatiken und -Sprachen verwendet, und es wird zusammengefasst, dass es unter ihnen nützlich ist.

Dieses Mal lernen wir Python-Lambda-Ausdrücke kennen.

Was ist ein Lambda-Ausdruck?

Der Lambda-Ausdruck ist ein Konzept, das in vielen anderen Programmiersprachen verwendet wird und ** anonyme Funktion ** bedeutet. Es ist nicht erforderlich, einen Namen anzugeben, ** wenn der zu verwendende Bereich sehr klein ist **, ** wird eine anonyme Funktion vor Ort definiert und verworfen ** ist ein Lambda-Ausdruck.

In C ++ kann es mit der Notation []() {} verwendet werden.

Beispiel für einen Lambda-Ausdruck

Der Lambda-Ausdruck wird in Form des "Lambda-Arguments: Verarbeitung" ausgedrückt. Das Merkmal ist, dass ein Wert als Ergebnis der Verarbeitung immer zurückgegeben wird.

Erstellen wir beispielsweise eine Add-Funktion, die die Argumente zweier Ganzzahlen hinzufügt, und eine lm_add-Funktion, die sie als Lambda ausdrückt.

def add(x, y):
    return x + y


lm_add = lambda x, y: x + y

x = 10
y = 40

'''
50
50
'''
print(add(x, y))
print(lm_add(x, y))

Die Funktion lm_add verhält sich genauso wie die Funktion add. Nachdem die Argumente $ x und y $ empfangen und $ x + y $ berechnet wurden, wird sie zwangsweise zurückgegeben.

Sie können Argumente variabler Länge wie eine reguläre Funktion verwenden.

f = lambda *args, **kwargs: print(args, kwargs)

'''
(10, 'a') {'hello': 'world'}
'''
f(10, 'a', hello='world')

Anwendungsbeispiel

Der Lambda-Ausdruck wird grundsätzlich nur in einem sehr kleinen Bereich verwendet (ich denke, das sollte sein), der verfügbar ist und nicht benannt werden muss.

Zum Beispiel

Es wird häufig in Kombination mit integrierten Funktionen wie verwendet. Besonders in der Wettbewerbsprogrammierung eingesetzt.

Im Folgenden wird beispielsweise das Array der Taples in aufsteigender Reihenfolge relativ zum $ 1 $ -Element sortiert. Wenn sie identisch sind, werden sie in aufsteigender Reihenfolge nach dem $ 0 $ -Element weiter sortiert.

tuples = [(10, -3), (4, 10), (-4, 13), (-20, -50), (-20, 1), (0, 0), (-22, -50)]

tuples = sorted(tuples, key=lambda x: (x[1], x[0]))

'''
[(-20, -50), (-22, -50), (10, -3), (0, 0), (-20, 1), (4, 10), (-4, 13)]
'''
print(tuples)

Da es nicht notwendig ist, die obige Vergleichsfunktion außerhalb des Geltungsbereichs zu definieren, und weil die Position der Funktion weit entfernt ist und die Last, dem Prozess zu folgen, verringert ist, scheint es besser, sie mit Lambda zu definieren.

Schließlich

Ich sah Lambda an. Besonders wenn Sie Wettbewerbsprogrammierung mit Python machen. Ich möchte den Lambda-Ausdruck auch in anderen Sprachen verwenden.

Sortieren mit $ 2 $ -Elementen in Python (C ++ - Sortieren usw.) Gibt es keine andere Wahl, als "eq, lt" in der Klasse zu definieren ... (Ich hoffe, es kann mit Lambda gemacht werden)

Verweise

Recommended Posts

[Road to Intermediate Python] Verwenden Sie Lambda-Ausdrücke
[Road to Intermediate Python] Verwenden Sie ternäre Operatoren
Ein Weg zum mittleren Python
Wie benutzt man Python Lambda?
[Road to Intermediate] Grundlegendes zu Python-Eigenschaften
[Road to Intermediate Python] Verwenden Sie die if-Anweisung in der Listeneinschlussnotation
Verwendung regulärer Ausdrücke in Python
[Road to Intermediate Python] Zusammenfassung der Artikelverknüpfungen
Zusammenfassung des Studiums von Python zur Verwendung von AWS Lambda
[Einführung in Python] Grundlegende Verwendung von Lambda-Ausdrücken
python3: Verwendung der Flasche (2)
[Python] Verwendung von Liste 1
[Road to Intermediate Python] Definieren Sie die Funktion __getattr__ in der Klasse
Wie benutzt man Python Argparse?
Python: Wie man pydub benutzt
[Python] Verwendung von checkio
Einfach zu bedienendes E-Cell 4 Intermediate
Betreff: Python Lambda ist nutzlos ^ H ^ H ^ H ^ H ^ H Schwer zu bedienen
[Python] Verwendung von input ()
[Python] Wie benutzt man Lambda-Ausdrücke? ?? [Kritzeleien] [Fortsetzung-1]
[Python] Verwendung von virtualenv
python3: Verwendung der Flasche (3)
python3: Wie man eine Flasche benutzt
Verwendung von Python-Bytes
[Road to Intermediate Python] Installieren Sie Pakete in großen Mengen mit pip
[Road to Intermediate Python] Aktiviert Vergleichsoperationen mit Originalklassen
[Einführung in die Udemy Python3 + -Anwendung] 58. Lambda
Python: So verwenden Sie Async mit
[Python] Verwendung der Pandas-Serie
Verwendung von Anfragen (Python Library)
Verwendung von SQLite in Python
[Lambda] [Python] Von Lambda auf Twitter posten!
Weg zu Intermediate Linux: Network Edition
[Einführung in Python] Verwenden wir Pandas
[Python] Verwendung von Liste 3 Hinzugefügt
Wie man MySQL mit Python benutzt
Verwendung der Python-API von OpenPose
Verwendung von ChemSpider in Python
Python: Verwendung von pydub (Wiedergabe)
Verwendung von PubChem mit Python
Einfach zu bedienendes Jupyter-Notebook (Python3.5)
[Einführung in Python] Verwenden wir Pandas
Verwendung der Zip-Funktion von Python
Verwenden Sie PostgreSQL mit Lambda (Python + psycopg2)
[Einführung in Python] Verwenden wir Pandas
[Python] Verwendung der Typetalk-API
[Road to Intermediate Python] Rufen Sie eine Klasseninstanz wie eine Funktion mit __call__ auf
[Road to Intermediate Python] Geben Sie die Ausführungsmethode dynamisch anhand des Variablennamens an
Grundlegende Grammatik des Python3-Systems (Verwendung von Funktionen, Schließung, Lambda-Funktion)
[Python] Zusammenfassung der Verwendung von Pandas
Verwenden Sie print in Python2 lambda expression
[Python] Extrahiere △△ mit maximalem ○○ mit Pandas
So installieren und verwenden Sie pandas_datareader [Python]
[Python] Straße zu Schlangen (1) Umgebungskonstruktion
[Python] Verwendung von __command__, Funktionserklärung
Ich möchte ein Glas aus Python verwenden
[Einführung in Python] Verwenden wir foreach mit Python
[Python] Verwendung von import sys sys.argv
Einfache Möglichkeit, Wikipedia mit Python zu verwenden