Reduce() en lambda-functies
Je wordt al heel goed in het gebruiken van lambda-functies! Hier is nog een functie om aan je arsenaal toe te voegen. De functie reduce() is handig om een bewerking uit te voeren op een lijst en geeft, in tegenstelling tot map() en filter(), één enkele waarde terug als resultaat. Om reduce() te gebruiken, moet je het importeren uit de module functools.
Weet je gibberish() nog van een paar oefeningen geleden?
# Define gibberish
def gibberish(*args):
"""Concatenate strings in *args together."""
hodgepodge = ''
for word in args:
hodgepodge += word
return hodgepodge
gibberish() neemt simpelweg een lijst met strings als argument en geeft als enkelvoudig resultaat de concatenatie van al deze strings terug. In deze oefening ga je die functionaliteit nabootsen met reduce() en een lambda-functie die strings aan elkaar plakt.
Deze oefening maakt deel uit van de cursus
Introductie tot functies in Python
Oefeninstructies
- Importeer de functie
reduceuit de modulefunctools. - Geef in de aanroep van
reduce()een lambda-functie door die twee stringargumentenitem1enitem2neemt en ze concateneert; geef ook de lijst met stringsstarkdoor. Wijs het resultaat toe aanresult. Het eerste argument vanreduce()moet de lambda-functie zijn en het tweede argument is de lijststark.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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)