Reduce() und Lambda-Funktionen
Du wirst sehr gut im Umgang mit Lambda-Funktionen! Hier ist eine weitere Funktion, die du zu deinem Repertoire an Fähigkeiten hinzufügen kannst. Die Funktion reduce()
ist nützlich, um eine Berechnung mit einer Liste durchzuführen und gibt im Gegensatz zu map()
und filter()
einen einzelnen Wert als Ergebnis zurück. Um reduce()
zu verwenden, musst du es aus dem Modul functools
importieren.
Erinnerst du dich an gibberish()
von vor ein paar Übungen?
# Define gibberish
def gibberish(*args):
"""Concatenate strings in *args together."""
hodgepodge = ''
for word in args:
hodgepodge += word
return hodgepodge
gibberish()
nimmt einfach eine Liste von Strings als Argument entgegen und gibt als einwertiges Ergebnis die Verkettung all dieser Strings zurück. In dieser Übung wirst du diese Funktion mit reduce()
und einer Lambda-Funktion nachbilden, die Strings miteinander verkettet.
Diese Übung ist Teil des Kurses
Einführung in Funktionen in Python
Anleitung zur Übung
- Importiere die Funktion
reduce
aus dem Modulfunctools
. - In dem
reduce()
-Aufruf übergibst du eine Lambda-Funktion, die zwei String-Argumenteitem1
unditem2
entgegennimmt und sie miteinander verkettet; außerdem übergibst du die Liste der Strings,stark
. Weise das Ergebnisresult
zu. Das erste Argument vonreduce()
muss die Lambda-Funktion sein und das zweite Argument ist die Listestark
.
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Import reduce from functools
# Create a list of strings: stark
stark = ['robb', 'sansa', 'arya', 'brandon', 'rickon']
# Use reduce() to apply a lambda function over stark: result
result = reduce(____, ____)
# Print the result
print(result)