Funkcja reduce() i funkcje lambda
Świetnie radzisz sobie z funkcjami lambda! Czas poznać jeszcze jedno narzędzie, które warto mieć w swoim arsenale. Funkcja reduce() przydaje się do wykonywania obliczeń na liście i – w przeciwieństwie do map() oraz filter() – zwraca pojedynczą wartość. Aby jej użyć, musisz ją zaimportować z modułu functools.
Pamiętasz funkcję gibberish() z wcześniejszych ćwiczeń?
# Define gibberish
def gibberish(*args):
"""Concatenate strings in *args together."""
hodgepodge = ''
for word in args:
hodgepodge += word
return hodgepodge
gibberish() przyjmuje listę ciągów znaków i zwraca jako pojedynczą wartość ich połączenie. W tym ćwiczeniu odtworzysz tę funkcjonalność, korzystając z reduce() i funkcji lambda, która łączy ciągi znaków ze sobą.
To ćwiczenie jest częścią kursu
Wprowadzenie do funkcji w Pythonie
Instrukcje do ćwiczenia
- Zaimportuj funkcję
reducez modułufunctools. - W wywołaniu
reduce()przekaż funkcję lambda, która przyjmuje dwa argumenty tekstoweitem1iitem2i łączy je ze sobą, a także listę ciągów znakówstark. Wynik przypisz do zmiennejresult. Pierwszym argumentemreduce()powinna być funkcja lambda, a drugim – listastark.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)