====== LU04d - Die map-Funktion in Python ====== Die ''map''-Funktion ist eine eingebaute Funktion in Python, die verwendet wird, um eine bestimmte Funktion auf alle Elemente eines Iterables (z. B. eine Liste) anzuwenden. Die Syntax der `map`-Funktion ist wie folgt: result = map(function, iterable) * **function**: Die Funktion, die auf jedes Element des Iterables angewendet werden soll. * **iterable**: Das Iterable, auf das die Funktion angewendet werden soll. Das Ergebnis der `map`-Funktion ist ein neues Iterable, das die Ergebnisse der Funktion enthält. ===== Beispiel ===== Ein Beispiel für die Verwendung der ''map''-Funktion ist die Quadratur aller Elemente einer Liste: numbers = [1, 2, 3, 4] squares = map(lambda x: x**2, numbers) print(list(squares)) # Output: [1, 4, 9, 16] Oder ohne die Verwendung einer Lambda-Funktion. def square(number): return number ** 2 squares = map(square, [1, 2, 3, 4]) print(list(squares)) # Output: [1, 4, 9, 16] ====== Vergleich mit List Comprehensions ====== Die ''map''-Funktion hat viele Gemeinsamkeiten mit List Comprehensions, aber es gibt auch Unterschiede. * **Gemeinsamkeiten**: - Beide können verwendet werden, um eine Funktion auf jedes Element eines Iterables anzuwenden. - Beide erzeugen ein neues Iterable mit den transformierten Werten. * **Unterschiede**: - Die ''map''-Funktion gibt ein Map-Objekt zurück, das in eine Liste konvertiert werden muss, während List Comprehensions direkt eine Liste zurückgeben. - List Comprehensions können auch Bedingungen enthalten, um Elemente zu filtern. Mit ''map'' muss dazu ''filter'' verwendet werden. - Die Syntax unterscheidet sich: List Comprehensions verwenden eine kompakte eckige Klammer-Syntax, während ''map'' die Funktion und das Iterable als Parameter nimmt. ===== Beispiel mit List Comprehension ===== Das obige Beispiel mit der `map`-Funktion könnte auch mit einer List Comprehension geschrieben werden: numbers = [1, 2, 3, 4] squares = [x**2 for x in numbers] print(squares) # Output: [1, 4, 9, 16] In vielen Fällen sind List Comprehensions die prägnantere und pythonischere Lösung. Sie bieten auch mehr Flexibilität, da sie auch Bedingungen zum Filtern enthalten können. ---- {{tag>M323-LU04}} [[https://creativecommons.org/licenses/by-nc-sa/4.0/ch/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) Kevin Maurizi