본문으로 바로가기

[Python]파이썬 람다(lambda)함수(람다식/익명함수)

category Python 2019. 2. 25. 08:30

람다는 함수를 간단하게 사용가능하게 해줍니다.


람다는 이름이 없는함수, 익명함수라고 하기도 합니다.


람다를 사용하는 방법은 매우 간단합니다.



매개변수 두개를 받아 두수의 합을 리턴하는 간단한 함수를 작성하는데 아래와같이 사용 가능합니다.

#lambda 매개변수 : 표현식
 
def add(n,m):
    return n+m
print(add(2,3))
#5
 
print((lambda n,m:n+m)(2,3))
#5
cs



람다를 변수에 할당하여 재사용 할 수도 있습니다.

lambdaAdd = lambda n,m:n+m
print(lambdaAdd(2,3))
#5 
print(lambdaAdd(4,5))
#9
cs


람다식 안에서 조건도 사용 가능합니다.

print((lambda n,m: n if n%2==0 else m)(1,3))
#3
print((lambda n,m: n if n%2==0 else m)(2,3))
#2
cs



람다함수는 map, filter, reduce 처럼 매개변수로 함수가 필요한곳에 유용하게 쓰입니다.


https://dpdpwl.tistory.com/86

(map, filter, reduce 클래스사용방법)


map, filter, reduce 를 람다함수를 이용하여 작성해보겠습니다.

= list(range(1,11))
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 
= list(map(lambda n:n*n, l))
print(m)
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
 
= list(filter(lambda n:n%2==0, l))
print(f)
# [2, 4, 6, 8, 10]
 
= reduce(lambda n,m:n*m, l)
print(r)
# 3628800
cs


람다함수를 잘 이용하면 코드를 간결하게 짤 수 있습니다.