language/Python

[Function] lambda 함수와 map 함수 이해 및 사용법

브라우니란 2023. 11. 25. 14:06

 

1. lambda(람다) 함수

  • 이름이 없는 한 줄 짜리 함수이며, 가독성을 위해 주로 사용한다.
  • 특히 map() 함수와 자주 사용된다.

 

 

기본 구조

# 람다 기본 구조
# (lambda 형식 매개변수 : 소스 구현)(입력값,...)
output = (lambda x, y: x + y)(10,20)

# 함수명 = lambda 형식 매개변수 : 소스 구현
lmbd_fn = lambda x, y : x + y
output = lmbd_fn(10, 30)


# 참고
# 일반적인 함수
def gnrl_fn(x, y):
    return x + y

output = gnrl_fn(10,4)

 

 

조건문 활용하기

  • if문에 대해 참(True)인 경우에 대해 출력할 값은 if문 앞에 쓰고, else에 대해서 출력할 값은 else 뒤에 명시한다.
# ''(빈 문자열)인 데이터는 0으로 바꾸는 람다함수
num_lst = [1, 2, 3, 4, '', 6, '', 8, 9, 10]

chk_lst = []
for i in range(len(num_lst)):
	chk_lst.append((lambda x,y : y if x == '' else x )(num_lst[i], 0))

 

 

 


 

2. map() 함수

 

  • 반복 가능한 자료형으로 들어오는 값을 함수에 하니씩 넣어 map 객체로 반환해주는 함수이다.
  • 출력된 타입이 map 객체라서 원하는 자료형(리스트, 튜플 등)으로 변환해주는 작업이 필요하다.
  • pandas  자료형 중 시리즈 타입만 사용가능하다. (데이터 프레임의 경우 단일 컬럼의 형태로 사용)

 

기본 구조

# 제곱 함수
def sequare(arg):
    return arg**2

# 리스트 자료형
lst = [1,2,3]
sqr_lst = list(map(sequare, lst))


# 시리즈 자료형
s = Series([1, 2, 3])
Series(map(sequare,s))

 

 


 

 

3. lambda와 map 함수 활용

  • map 함수는 lambda를 통해 익명 함수를 생성하는 경우가 많다.
  • 특히 데이터 프레임 각 컬럼에 대해 특정 함수를 적용하고 싶을 때 자주 사용한다.
# 제곱 함수
def sequare(arg):
    return arg**2

# 리스트
lst = [1,2,3]
list(map(lambda arg:arg**2, lst))

# 시리즈
s = Series([1, 2, 3])
Series(map(lambda arg:arg**2,s))