НачатьНачать бесплатно

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)
Редактировать и запускать код