Aan de slagGa gratis aan de slag

Map() en lambda-functies

Tot nu toe heb je lambda-functies gebruikt om korte, simpele functies te schrijven en om functies met eenvoudige functionaliteit te herdefiniëren. De beste use case voor lambda-functies is echter wanneer je deze eenvoudige functionaliteit anoniem wilt inbedden in grotere expressies. Dat betekent dat de functionaliteit niet in de omgeving wordt opgeslagen, in tegenstelling tot een functie die is gedefinieerd met def. Om dit beter te begrijpen, gebruik je een lambda-functie in de context van de functie map().

Herinner je uit de video dat map() een functie toepast op een object, zoals een lijst. Hier kun je lambda-functies gebruiken om de functie te definiëren die map() zal gebruiken om het object te verwerken. Bijvoorbeeld:

nums = [2, 4, 6, 8, 10]

result = map(lambda a: a ** 2, nums)

Je ziet hier dat een lambda-functie, die een waarde a tot de macht 2 verheft, wordt doorgegeven aan map() samen met een lijst met getallen, nums. Het map-object dat voortkomt uit de aanroep van map() wordt opgeslagen in result. Je gaat nu oefenen met het gebruik van lambda-functies met map(). In deze oefening pas je de functionaliteit van de functie add_bangs() die je in eerdere oefeningen hebt gedefinieerd toe op een lijst met strings.

Deze oefening maakt deel uit van de cursus

Introductie tot functies in Python

Cursus bekijken

Oefeninstructies

  • Geef in de aanroep van map() een lambda-functie door die de string '!!!' aan een string item concateneert; geef ook de lijst met strings spells door. Ken het resulterende map-object toe aan shout_spells.
  • Zet shout_spells om naar een lijst en print de lijst.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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)
Code bewerken en uitvoeren