Funktionale Programmierung in Python

Die Leistungsfähigkeit von Lambdas und Funktionen höherer Ordnung nutzen

Lernen Sie, wie Sie mit funktionalen Programmiertechniken prägnanten und leistungsfähigen Code in Python schreiben können. Dieses Lernprogramm behandelt Funktionen, Lambda-Ausdrücke und Funktionen höherer Ordnung wie map, filter und reduce.

Programmierung
Autor:in
Zugehörigkeit
Veröffentlichungsdatum

5. Februar 2024

Geändert

29. April 2025

Schlüsselwörter

Funktionale Programmierung in Python, Lambda-Funktionen, abbilden filtern reduzieren, Funktionen höherer Ordnung, Funktionale Programmierung in Python

Einführung

Funktionale Programmierung ist ein Paradigma, das Funktionen als Bürger erster Klasse behandelt, was bedeutet, dass Funktionen Variablen zugewiesen, als Argumente übergeben und von anderen Funktionen zurückgegeben werden können. In Python können Sie mit Lambda-Ausdrücken und Funktionen höherer Ordnung wie map, filter und reduce prägnanten und ausdrucksstarken Code schreiben. In diesem Tutorium werden diese Konzepte erklärt und gezeigt, wie sie verwendet werden können, um eleganteren und effizienteren Code zu schreiben.



Kern-Konzepte

Funktionen erster Klasse

In Python sind Funktionen Objekte erster Klasse. Das bedeutet, Sie können: - Funktionen an Variablen zuweisen. - Übergabe von Funktionen als Argumente an andere Funktionen. - Rückgabe von Funktionen aus anderen Funktionen.

Lambda-Funktionen

Lambda-Funktionen sind anonyme Funktionen, die mit dem Schlüsselwort lambda definiert werden. Sie werden typischerweise für kurze, wegwerfbare Funktionen verwendet, die nicht komplex genug sind, um eine vollständige Funktionsdefinition zu rechtfertigen.

Funktionen höherer Ordnung

Funktionen höherer Ordnung sind Funktionen, die andere Funktionen als Argumente annehmen oder als Ergebnis zurückgeben. Python bietet mehrere eingebaute Funktionen höherer Ordnung:
- map(): Wendet eine Funktion auf jedes Element einer Iterationskette an.
- filter(): Filtert Elemente aus einer Iterable auf der Grundlage einer Bedingung.
- reduce(): Wendet eine Funktion kumulativ auf die Elemente einer Iterable an (verfügbar im Modul functools).

Beispiele: Python vs. R

Im Folgenden sehen Sie Beispiele, die funktionale Programmierkonzepte in Python demonstrieren, mit einem R-Vergleich als Kontext.

# Python: Lambda-Funktion und Funktionen höherer Ordnung

# Verwendung eines Lambdas zum Verdoppeln einer Zahl
double = lambda x: x * 2
print("Double of 5 is:", double(5))

# Verwendung von map() mit einem Lambda zum Verdoppeln jedes Elements in einer Liste
numbers = [1, 2, 3, 4, 5]
doubled = list(map(lambda x: x * 2, numbers))
print("Doubled list:", doubled)

# Verwendung von filter() mit einem Lambda, um gerade Zahlen auszuwählen
evens = list(filter(lambda x: x % 2 == 0, numbers))
print("Even numbers:", evens)

# Verwendung von reduce(), um das Produkt einer Liste von Zahlen zu berechnen
from functools import reduce
product = reduce(lambda a, b: a * b, numbers)
print("Product of numbers:", product)
# R: Anonyme Funktionen und Funktionen höherer Ordnung

# Verwendung einer anonymen Funktion mit lapply, um Zahlen zu verdoppeln
numbers <- c(1, 2, 3, 4, 5)
doubled <- lapply(numbers, function(x) x * 2)
print("Doubled list:")
print(unlist(doubled))

# Verwendung von Filter() mit einer anonymen Funktion zur Auswahl gerader Zahlen
evens <- Filter(function(x) x %% 2 == 0, numbers)
print("Even numbers:")
print(evens)

# Verwenden von Reduce() zum Berechnen des Produkts von Zahlen
product <- Reduce(function(a, b) a * b, numbers)
print("Product of numbers:")
print(product)

Schlussfolgerung

Funktionale Programmierung in Python ermöglicht es Ihnen, prägnanten, aussagekräftigen und effizienten Code zu schreiben. Durch den Einsatz von Funktionen erster Klasse, Lambda-Ausdrücken und Funktionen höherer Ordnung wie map, filter und reduce können Sie komplexe Operationen auf klare und kompakte Weise durchführen. Experimentieren Sie mit diesen Konzepten, um zu sehen, wie sie Ihre Codierungsaufgaben vereinfachen und die Lesbarkeit des Codes verbessern können.

Weiterführende Literatur

Viel Spaß beim Programmieren und beim Erforschen der Möglichkeiten der funktionalen Programmierung in Python!

Weitere Artikel erkunden

Hinweis

Hier finden Sie weitere Artikel aus derselben Kategorie, die Ihnen helfen, tiefer in das Thema einzutauchen.

placeholder

placeholder
Keine Treffer
Zurück nach oben

Wiederverwendung

Zitat

Mit BibTeX zitieren:
@online{kassambara2024,
  author = {Kassambara, Alboukadel},
  title = {Funktionale Programmierung in Python},
  date = {2024-02-05},
  url = {https://www.datanovia.com/de/learn/programming/python/advanced/functional-programming.html},
  langid = {de}
}
Bitte zitieren Sie diese Arbeit als:
Kassambara, Alboukadel. 2024. “Funktionale Programmierung in Python.” February 5, 2024. https://www.datanovia.com/de/learn/programming/python/advanced/functional-programming.html.