Reduce()와 람다 함수
람다 함수를 정말 잘 다루고 계시네요! 이번에는 여러분의 도구 상자에 하나를 더 추가해 볼게요. 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()를 사용해 이 동작을 그대로 재현해 보겠습니다.
이 연습은 강의의 일부입니다
Python 함수 입문
연습 안내
functools모듈에서reduce함수를 임포트하세요.reduce()호출에서 두 개의 문자열 인수item1과item2를 받아 이어 붙이는 람다 함수를 전달하고, 문자열 리스트stark도 함께 전달하세요. 결과를result에 할당하세요.reduce()의 첫 번째 인수는 람다 함수이고 두 번째 인수는 리스트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)