Map() і lambda-функції
Досі ви використовували lambda-функції для написання коротких простих функцій, а також щоб перевизначати функції з простою логікою. Однак найкраще lambda-функції підходять тоді, коли потрібно анонімно вбудувати таку просту логіку у більший вираз. Тобто ця логіка не зберігається в середовищі, на відміну від функції, визначеної через def. Щоб краще зрозуміти цю ідею, ви використаєте lambda-функцію в контексті функції map().
Нагадаємо з відео: map() застосовує функцію до об'єкта, наприклад до списку. Тут ви можете використати lambda-функції, щоб визначити функцію, яку map() використовуватиме для обробки об'єкта. Наприклад:
nums = [2, 4, 6, 8, 10]
result = map(lambda a: a ** 2, nums)
Як бачите, lambda-функцію, що підносить значення a до степеня 2, передано до map() разом зі списком чисел nums. Отриманий у результаті виклику map() map-об'єкт зберігається в result. Тепер ви попрактикуєте використання lambda-функцій із map(). У цій вправі ви застосуєте функціональність функції add_bangs(), яку ви визначали в попередніх вправах, до списку рядків.
Ця вправа є частиною курсу
Вступ до функцій у Python
Інструкції до вправи
- У виклику
map()передайте lambda-функцію, яка додає рядок'!!!'до рядка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)