Začněte nyníZačněte zdarma

Map() a lambda funkce

Zatím jsi používal/a lambda funkce k psaní krátkých a jednoduchých funkcí a také k předefinování funkcí s jednoduchou funkcionalitou. Nejlepší využití lambda funkcí je ale tehdy, kdy chceš tuto jednoduchou funkcionalitu anonymně vložit do větších výrazů. To znamená, že funkcionalita není uložena v prostředí, na rozdíl od funkce definované pomocí def. Abys tuto myšlenku lépe pochopil/a, použiješ lambda funkci v kontextu funkce map().

Z videa si pamatuješ, že map() aplikuje funkci na objekt, například na seznam. Tady můžeš pomocí lambda funkcí definovat funkci, kterou map() použije ke zpracování objektu. Například:

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

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

Vidíš, že lambda funkce, která umocní hodnotu a na druhou, je předána funkci map() spolu se seznamem čísel nums. Map objekt, který vznikne voláním map(), je uložen v proměnné result. Teď si procvičíš použití lambda funkcí spolu s map(). V tomto cvičení namapuješ funkcionalitu funkce add_bangs(), kterou jsi definoval/a v předchozích cvičeních, na seznam řetězců.

Toto cvičení je součástí kurzu

Úvod do funkcí v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Ve volání map() předej lambda funkci, která ke řetězci item připojí řetězec '!!!'; předej také seznam řetězců spells. Výsledný map objekt přiřaď do proměnné shout_spells.
  • Převeď shout_spells na seznam a vypiš ho.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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)
Upravit a spustit kód