시작하기무료로 시작하기

Map()과 람다 함수

지금까지 람다 함수를 사용해 짧고 간단한 함수를 작성하고, 단순한 기능의 함수를 다시 정의해 보았어요. 하지만 람다 함수의 가장 좋은 활용 사례는, 이런 간단한 기능을 더 큰 표현식 안에 익명으로 넣고 싶을 때예요. 즉, def로 정의한 함수와 달리 기능이 환경에 저장되지 않는다는 뜻이죠. 이 개념을 더 잘 이해하기 위해, 이번에는 map() 함수와 함께 람다 함수를 사용해 보겠습니다.

영상에서 봤듯이 map()은 리스트 같은 객체에 함수를 적용해요. 여기서는 map()이 객체를 처리할 때 사용할 함수를 람다 함수로 정의할 수 있습니다. 예를 들어:

nums = [2, 4, 6, 8, 10]

result = map(lambda a: a ** 2, nums)

여기서는 값 a를 제곱하는 람다 함수를 숫자 리스트 nums와 함께 map()에 전달했어요. map() 호출의 결과로 생성되는 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)
코드 편집 및 실행