Reduce() і lambda-функції
Ви вже чудово працюєте з lambda-функціями! Ось іще одна функція, яку варто додати до вашого арсеналу. Функція reduce() корисна для виконання обчислення над списком і, на відміну від map() та filter(), повертає один-єдиний результат. Щоб використати reduce(), її потрібно імпортувати з модуля functools.
Пам'ятаєте gibberish() з попередніх вправ?
# Define gibberish
def gibberish(*args):
"""Concatenate strings in *args together."""
hodgepodge = ''
for word in args:
hodgepodge += word
return hodgepodge
gibberish() просто приймає список рядків як аргумент і повертає один-єдиний результат — конкатенацію всіх цих рядків. У цій вправі ви відтворите цю функціональність за допомогою reduce() і lambda-функції, яка об'єднує рядки між собою.
Ця вправа є частиною курсу
Вступ до функцій у Python
Інструкції до вправи
- Імпортуйте функцію
reduceз модуляfunctools. - У виклику
reduce()передайте lambda-функцію, що приймає два рядкові аргументиitem1іitem2та конкатенує їх; також передайте список рядківstark. Присвойте результат зміннійresult. Першим аргументомreduce()має бути lambda-функція, другим — списокstark.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Import reduce from functools
# Create a list of strings: stark
stark = ['robb', 'sansa', 'arya', 'brandon', 'rickon']
# Use reduce() to apply a lambda function over stark: result
result = reduce(____, ____)
# Print the result
print(result)