이번 포스팅에서는 파이썬(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 함수의 작동 원리는 다음과 같다.
이번엔 여러 인자를 받는 함수에서 부분 인자를 고정시키고 리스트에 적용하는 경우를 생각해보자. 이때는 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 함수가 미세하게 속도가 더 빠르다고 한다.
'프로그래밍 > Python' 카테고리의 다른 글
operator 모듈 알아보기 (2) | 2022.08.30 |
---|---|
functools reduce 함수 사용법 알아보기 (4) | 2022.08.29 |
[오류 해결] module 'distutils' has no attribute 'version' (1) | 2022.08.04 |
[Python] Python에서 오류가 발생하는 경우 StackOverflow로 검색하기. (0) | 2022.07.19 |
[오류 해결] Glyph 8722 missing from current font (Matplotlib에서 빼기, '-', minus, 음수 부호 표기 오류) (0) | 2022.07.18 |
댓글