Pythons map()-Funktion meistern: Syntax, Beispiele und Best Practices
Pythons map()-Funktion meistern: Syntax, Beispiele und Best Practices
Pythons eingebaute map() wendet eine Funktion auf jedes Element eines Iterierbaren (Liste, Tuple, Set, String, Dictionary usw.) an und gibt ein neues Iterierbares zurück. Sie ist ein Eckpfeiler für funktionalen Programmierstil in Python.
Was Sie lernen werden
- Syntax und Kernparameter
- Wie
map()unter der Haube funktioniert - Verwendung von
map()mit eingebauten Funktionen - Anwendung von
map()auf Strings, Listen, Tupel, Dictionaries und Sets - Lambda-Ausdrücke mit
map()nutzen - Mehrere Iteratoren in einem Aufruf kombinieren
Syntax
map(funktion, iterable1, iterable2, ... iterableN)
Parameter
- funktion: Ein obligatorisches Callable, das auf jedes Element angewendet wird.
- iterable(s): Ein oder mehrere Iterierbare. Die Funktion erhält pro Aufruf ein Element von jedem Iterierbaren.
Rückgabewert
Das Ergebnis ist ein map-Objekt – ein lazy Iterierbares, das transformierte Elemente liefert. Konvertieren Sie es in eine Liste, ein Tuple oder ein Set, um die Werte zu materialisieren.
Wie map() funktioniert
Unten ist ein einfaches Beispiel, das jede Zahl in einer Liste quadriert.
def quadrat(n):
return n * n
meine_liste = [2, 3, 4, 5, 6, 7, 8, 9]
aktualisiert = map(quadrat, meine_liste)
print(list(aktualisiert)) # [4, 9, 16, 25, 36, 49, 64, 81]
Das map-Objekt ist lazy; die Konvertierung in eine Liste erzwingt die Auswertung.
map() mit eingebauten Funktionen verwenden
Kombinieren Sie map() mit jedem eingebauten, der ein einzelnes Argument akzeptiert. Zum Beispiel das Runden von Gleitkommazahlen:
werte = [2.6743, 3.63526, 4.2325, 5.9687967, 6.3265, 7.6988, 8.232, 9.6907] gerundet = map(round, werte) print(list(gerundet)) # [3, 4, 4, 6, 6, 8, 8, 10]
Map über Strings
Strings sind iterierbar, daher kann map() jedes Zeichen oder Wort transformieren.
def grossbuchstaben(s):
return s.upper()
text = "willkommen bei guru99 tutorials!"
print("".join(map(grossbuchstaben, text))) # WILLKOMMEN BEI GURU99 TUTORIALS!
Map über Zahlenlisten
def mal_zehn(n):
return n * 10
zahlen = [2, 3, 4, 5, 6, 7, 8, 9]
print(list(map(mal_zehn, zahlen))) # [20, 30, 40, 50, 60, 70, 80, 90]
Map über Tupel
def grossbuchstaben_str(s):
return s.upper()
sprachen = ("php", "java", "python", "c++", "c")
print(list(map(grossbuchstaben_str, sprachen))) # ['PHP', 'JAVA', 'PYTHON', 'C++', 'C']
Map über Dictionaries und Sets
Bei der Iteration über ein Dictionary erhält map() dessen Keys. Bei einem Set ist die Reihenfolge willkürlich.
def mal_zehn(n):
return n * 10
beispiel_set = {2, 3, 4, 5, 6, 7, 8, 9}
print(sorted(map(mal_zehn, beispiel_set))) # [20, 30, 40, 50, 60, 70, 80, 90]
Lambda-Funktionen verwenden
Anonyme Funktionen halten den Code prägnant:
zahlen = [2, 3, 4, 5, 6, 7, 8, 9] print(list(map(lambda x: x * 10, zahlen))) # [20, 30, 40, 50, 60, 70, 80, 90]
Mehrere Iteratoren
Beispiel 1: Zwei Listen addieren
def addieren(a, b):
return a + b
liste1 = [2, 3, 4, 5, 6, 7, 8, 9]
liste2 = [4, 8, 12, 16, 20, 24, 28]
print(list(map(addieren, liste1, liste2))) # [6, 11, 16, 21, 26, 31, 36]
Beispiel 2: Listen- und Tupel-Elemente verketten
def verketten(a, b):
return f"{a}_{b}"
buchstaben = ['a', 'b', 'b', 'd', 'e']
marken = ('PHP', 'Java', 'Python', 'C++', 'C')
print(list(map(verketten, buchstaben, marken))) # ['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']
Wichtigste Erkenntnisse
map()transformiert jedes Element eines Iterierbaren mit einer gegebenen Funktion.- Es gibt einen lazy Iterator zurück; konvertieren Sie zu
list,tupleoderset, um Ergebnisse zu materialisieren. - Kompatibel mit jedem Callable – einschließlich eingebauter, benutzerdefinierter Funktionen und Lambdas.
- Unterstützt mehrere Iterierbare; die Funktion muss eine passende Anzahl an Argumenten akzeptieren.
- Großartig für sauberen, funktionalen Code und effiziente Verarbeitung großer Datensätze.
Python
- Python Lambda-Funktionen: Praxisleitfaden zu anonymen Funktionen
- Python Generatoren: Effiziente Iteration und fortgeschrittene Anwendungsfälle
- Python Closures erklärt: Wie verschachtelte Funktionen Variablen erfassen
- Python Decorators meistern: Funktionen mit Experten-Techniken erweitern
- C++ Operator‑Overloading: Praktischer Leitfaden mit Code‑Beispielen
- C++-Funktionen erklärt: Mit praktischen Code-Beispielen
- Python print()-Funktion: Praktischer Leitfaden mit Beispielen
- Pythons strip()-Methode meistern: Umfassender Leitfaden & Praxisbeispiele
- Pythons str.count(): Zeichen & Teilstrings zählen mit Beispielen
- Python format()-Strings meistern mit klaren Beispielen