Map() und Lambda-Funktionen
Bisher hast du Lambda-Funktionen verwendet, um kurze, einfache Funktionen zu schreiben und um Funktionen mit einfacher Funktionalität neu zu definieren. Der beste Anwendungsfall für Lambda-Funktionen ist jedoch, wenn du diese einfachen Funktionalitäten anonym in größere Ausdrücke einbetten willst. Das bedeutet, dass die Funktionalität nicht in der Umgebung gespeichert wird, im Gegensatz zu einer mit def definierten Funktion. Um dies besser verstehen zu können, verwendest du eine Lambda-Funktion im Zusammenhang mit der Funktion map().
Du weißt aus dem Video, dass map() eine Funktion auf ein Objekt, z. B. eine Liste, anwendet. Hier kannst du Lambda-Funktionen verwenden, um die Funktion zu definieren, die map() zur Verarbeitung des Objekts verwendet. Beispiel:
nums = [2, 4, 6, 8, 10]
result = map(lambda a: a ** 2, nums)
Du kannst hier sehen, dass eine Lambda-Funktion, die einen Wert a mit 2 potenziert, zusammen mit einer Liste von Zahlen, nums, an map() übergeben wird. Das Map-Objekt, das durch den Aufruf von map() entsteht, wird in result gespeichert. Du übst jetzt den Einsatz von Lambda-Funktionen mit map(). In dieser Übung überträgst du die Funktionalität der Funktion add_bangs(), die du in den vorherigen Übungen definiert hast, auf eine Liste von Strings.
Diese Übung ist Teil des Kurses
Einführung in Funktionen in Python
Anleitung zur Übung
- In dem
map()-Aufruf übergibst du eine Lambda-Funktion, die den String'!!!'mit einem Stringitemverkettet; außerdem übergibst du die Liste der Strings,spells. Weise das resultierende Map-Objektshout_spellszu. - Konvertiere
shout_spellsin eine Liste und gib die Liste aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Create a list of strings: spells
spells = ["protego", "accio", "expecto patronum", "legilimens"]
# Use map() to apply a lambda function over spells: shout_spells
____ = map(____, ____)
# Convert shout_spells to a list: shout_spells_list
____
# Print the result
print(shout_spells_list)