네이버 부스트코스 <머신러닝을 위한 Python> 강좌 정리입니다.
- map
- Sequence 자료형의 각 element에 동일한 function을 적용
a_list = [1,2,3,4,5]
def func_a(x):
return x**2
print(list(map(func_a,a_list))) # map 함수의 결과는 항상 리스트에 담아야한다.
## 특이한 경우
a_list = [1,2,3,4,5]
b_list= [1,2,3,4,5]
f = lambda x,y : x+y # 인자 2개를 받는 func
print(list(map(f,a_list,b_list))) # map의 적용함수로 f를 사용하며, 인자 2개로 a_list,b_list에서 하나씩 가져온다
# zip 코드와 기능이 같다.
# [2, 4, 6, 8, 10]
list(map(lambda x : x**2 if x%2 == 0 else x, a_list))
# lambda 함수를 직접 입력
# 이 경우 else를 꼭 써줘야함
- reduce
- map과 달리 list에 같은 함수를 적용하여 통합
from functools import reduce # reduce모듈의 경우 import가 필요하다
a_list = [1,2,3,4,5]
def func_a(x,y): # 인자 두개를 받아 서로 합하여 반환하는 함수
return x+y
print(reduce(func_a, a_list))
# 15
# map은 리스트의 각 요소에 함수를 적용
# reduce는 리스트의 같은 함수를 적용하여 통합
'Python > 부스트코스_노트' 카테고리의 다른 글
Pythonic Code - news categorization (0) | 2020.02.24 |
---|---|
Pythonic Code - Asterisk (0) | 2020.02.23 |
Pythonic Code - enumerate & zip (0) | 2020.02.22 |