본문 바로가기

Python/부스트코스_노트

Pythonic Code - map & reduce

네이버 부스트코스 <머신러닝을 위한 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