앞선 포스팅에서는 lambda에 대해 알아보면서 람다는 다른 함수들의 인자로 많이 쓰이는 것을 알게 되었다. 그래서 이번에는 파이썬의 map에 대해 알아보고자 한다.

map이란?

  • 맵은 인자로 “함수”“리스트”를 받는다. map(함수, 리스트)와 같은 모습으로 쓰인다.
  • 인자로 받은 리스트의 요소 하나하나를 함수에 적용시켜서 새로운 리스트를 만들어준다.

map 사용법

생각보다 간단하다. map의 함수 인자 부분에 람다 표현식을 넣어주면 된다. 이때 map은 기본적으로 map객체를 반환하기 때문에 list로 다시 바꿔주는 작업이 필요하다.

li1 = [1,2,3]
li2 = [4,5,6]

list(map(lambda x,y:x+y, li1, li2))
# [5, 7, 9]

위 코드에서는 람다에서 받는 인자가 x,y 두개이기 때문에 map의 인자로 두개의 리스트 li1,li2가 들어갔다.

map과 lambda를 사용하지 않고 구현한다면??

def plus(a,b):
    return a+b

li1 = [1,2,3]
li2 = [4,5,6]

new_li = []
for (i,j) in zip(li1,li2):
    new_li.append(i+j)

new_li
# [5,7,9]

이처럼 코드가 아주 길어지게 된다. 물론 더 짧게 만들 수도 있겠지만 극단적인 예시를 보여주고 싶었다.

참고