map() и лямбда-функции
До сих пор вы использовали лямбда-функции для написания коротких и простых функций, а также для переопределения функций с несложной логикой. Однако лучший способ применить лямбда-функции — встроить их анонимно в более крупные выражения. Это означает, что их функциональность не сохраняется в памяти программы, в отличие от функций, определённых с помощью def. Чтобы лучше понять эту идею, вы используете лямбда-функцию в контексте функции map().
Вспомните из видео: map() применяет функцию к объекту, например к списку. Здесь лямбда-функции можно использовать для определения той функции, которую map() будет применять к объекту. Например:
nums = [2, 4, 6, 8, 10]
result = map(lambda a: a ** 2, nums)
Здесь лямбда-функция, возводящая значение a в степень 2, передаётся в map() вместе со списком чисел nums. Результирующий объект map сохраняется в переменной result. Теперь вы попрактикуетесь в использовании лямбда-функций совместно с map(). В этом упражнении вы применяете функциональность функции add_bangs(), определённой в предыдущих упражнениях, к списку строк.
Это упражнение является частью курса
Введение в функции Python
Инструкции к упражнению
- В вызове
map()передайте лямбда-функцию, которая конкатенирует строку'!!!'со строкойitem; также передайте список строкspells. Присвойте результирующий объект map переменнойshout_spells. - Преобразуйте
shout_spellsв список и выведите его на экран.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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)