Map() och lambdafunktioner
Hittills har du använt lambdafunktioner för att skriva korta, enkla funktioner och för att definiera om funktioner med enkel funktionalitet. Den bästa användningen av lambdafunktioner är dock när du vill att denna enkla funktionalitet ska vara anonymt inbäddad i större uttryck. Det innebär att funktionaliteten inte lagras i miljön, till skillnad från en funktion som definieras med def. För att förstå detta bättre använder du nu en lambdafunktion i kombination med funktionen map().
Kom ihåg från videon att map() tillämpar en funktion på ett objekt, till exempel en lista. Här kan du använda lambdafunktioner för att definiera den funktion som map() ska använda för att bearbeta objektet. Till exempel:
nums = [2, 4, 6, 8, 10]
result = map(lambda a: a ** 2, nums)
Här ser du att en lambdafunktion, som upphöjer värdet a till potensen 2, skickas till map() tillsammans med en lista med tal, nums. Det map-objekt som returneras från anropet till map() lagras i result. Nu ska du öva på att använda lambdafunktioner med map(). I den här övningen ska du mappa funktionaliteten hos funktionen add_bangs(), som du definierade i tidigare övningar, över en lista med strängar.
Den här övningen är en del av kursen
Introduktion till funktioner i Python
Övningsinstruktioner
- I anropet till
map()skickar du en lambdafunktion som sammanfogar strängen'!!!'med en strängitem; skicka även listan med strängar,spells. Tilldela det resulterande map-objektet tillshout_spells. - Konvertera
shout_spellstill en lista och skriv ut den.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)