Map() i funkcje lambda
Do tej pory używałeś funkcji lambda do pisania krótkich, prostych funkcji oraz do redefiniowania funkcji o podstawowej funkcjonalności. Najlepszym zastosowaniem funkcji lambda jest jednak sytuacja, gdy chcesz anonimowo osadzić prostą funkcjonalność wewnątrz większego wyrażenia. Oznacza to, że funkcjonalność nie jest przechowywana w środowisku – w przeciwieństwie do funkcji zdefiniowanej za pomocą def. Żeby lepiej zrozumieć tę ideę, użyjesz funkcji lambda w kontekście funkcji map().
Przypomnij sobie z lekcji wideo, że map() stosuje funkcję do obiektu, na przykład listy. Możesz użyć funkcji lambda, aby zdefiniować funkcję, której map() użyje do przetworzenia obiektu. Przykład:
nums = [2, 4, 6, 8, 10]
result = map(lambda a: a ** 2, nums)
Widzisz tutaj, że do map() przekazywana jest funkcja lambda, która podnosi wartość a do potęgi 2, wraz z listą liczb nums. Obiekt map powstały w wyniku wywołania map() jest przechowywany w zmiennej result. Teraz przećwiczysz użycie funkcji lambda razem z map(). W tym ćwiczeniu zmapujesz funkcjonalność funkcji add_bangs(), którą zdefiniowałeś w poprzednich ćwiczeniach, na listę ciągów znaków.
To ćwiczenie jest częścią kursu
Wprowadzenie do funkcji w Pythonie
Instrukcje do ćwiczenia
- W wywołaniu
map()przekaż funkcję lambda, która łączy ciąg znaków'!!!'z ciągiemitem; przekaż również listę ciągów znakówspells. Przypisz powstały obiekt map do zmiennejshout_spells. - Przekonwertuj
shout_spellsna listę i wyświetl ją.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)