본문 바로가기
프로그래밍/Python

Python map 함수 사용법 알아보기.

by 부자 꽁냥이 2022. 8. 29.

이번 포스팅에서는 파이썬(Python) 내장 함수 map 사용 방법을 알아보자.


   map 사용법

1) 필요성

먼저 map 함수가 왜 필요한지 예를 통하여 살펴보자. 숫자를 담고 있는 리스트에 원소별로 제곱을 한다고 해보자. 가장 먼저 떠오르는 방법은 다음과 같을 것이다.

 

def f(x):
    return x**2

li = [1,3,5,6,7,8]
res = []
for v in li:
    res.append(f(v))
print(res)

 

하지만 이는 빈 리스트와 for 문을 사용하고 append까지 해주는 등 코딩해야 할 것이 많다.

2) map 사용법

이제 같은 작업을 map을 이용하여 수행해보자. map은 첫 번째 인자로 리스트 원소에 적용할 함수, 두 번째 인자로 대상 리스트(또는 순회 가능한 객체)를 받는다. 아래 코드를 통해 그 사용법을 익힐 수 있다. map의 결과는 바로 사용할 수 없고 list로 한번 묶어줘야 한다.

 

res = list(map(f, li))
print(res)

 

map 함수의 작동 원리는 다음과 같다.

map은 첫 번재 인자로 받은 함수를 두 번째 인자로 받은 리스트 각 원소에 적용하도록 해준다.

 

이번엔 여러 인자를 받는 함수에서 부분 인자를 고정시키고 리스트에 적용하는 경우를 생각해보자. 이때는 functools 모듈의 partial을 사용하면 된다.

 

from functools import partial

def g(x, a, b):
    return a*x+b

f = partial(g, a=2, b=1) ## g의 a, b 인자 고정
res = list(map(f, li))
print(res)

 

 

map 함수는 list comprehension을 통해서도 구현이 가능한데 map 함수가 미세하게 속도가 더 빠르다고 한다.


 


댓글


맨 위로