[TIL]lambda함수

김예진·2020년 11월 29일
0

TIL

목록 보기
28/40
post-thumbnail

동기들이 lambda 함수를 사용하는 것을 자주 보기도 했고, 한번 써보고 싶은데 어떻게 사용하는지 몰라서

1. 람다(lambda)란?

람다(lambda)는 익명함수를 지칭한다. 그렇다면 익명 함수란? 함수지만 기존의 함수 선언 문법과 달리 함수의 이름을 써주지 않고도 정의할 수 있는 함수다.

함수를 쓰려면

def plus(a, b): 
	return a + b 
    
print(plus(5,2))

이렇게 def를 쓰고 함수 이름을 써줘야하는데, 람다를 사용하면...

lambda a, b : a + b

이름없이 함수를 만들어서 사용할 수 있다.

ex_plus = lambda a, b : a + b 
print(ex_plus(4,2))

#혹은

print((lambda n,m:n+m)(3,5))

또한 람다를 변수에 할당하여 재사용이 가능하다.

lambdaAdd = lambda n,m:n+m
print(lambdaAdd(2,3))

#5가 출력됨 

- map, reduce, filter 등의 함수에서 사용하기

파이썬의 람다 함수는 간단한 함수가 필요한 map, reduce, filter 등의 함수에서 주로 쓰여진다.

map

# 제곱하기 
a = [1, 6, 2, 5, 2, 7, 2, 8, 9, 11, 5, 26] 
result = list(map(lambda x : x**2, a)) 
print(result)

# [1, 36, 4, 25, 4, 49, 4, 64, 81, 121, 25, 676] 출력

reduce

r = reduce(lambda n,m:n*m, l)
print(r)

# 3628800 출력

filter

a = [8, 4, 2, 5, 2,7, 9, 11, 26, 13] 
result = list(filter(lambda x : x > 7 and x < 15, a)) 
print(result)

# [8, 9, 11, 13] 출력
profile
Backend Developer 🌱 벨로그 내용을 티스토리로 이사중~!

0개의 댓글