ПочатиПочніть безкоштовно

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