본문 바로가기
Python

[python] 파이썬 람다 함수 사용하기 (python lambda expression)

by clolee 2021. 10. 25.

· 파이썬 람다 (lambda)

 

람다 함수 :

이름이 없는 익명 함수 (anonymous function)

필요시 정의하여 사용하고 버리는 일시적인 함수

다른 함수의 인수로 넘겨줄 때 사용한다.

다른 함수의 인수로 넘겨줄 함수를 생성하여 사용 할 때 재사용 하지 않고 한번만 사용하는 경우라면 lambda 함수를 생성해 넘겨주는 것이 좋다.

 

 

 

 

· 람다 표현식으로 함수 만들기

 

def func(매개변수):

    return 결과

 

===>

 

func = lambda 매개변수결과

 

 

 

def func(x):

    return x + 1

 

===>

 

func = lambda x: x + 1

 

 

람다 함수는 return문 없이 자동으로 return 해준다.

 

 

람다 표현식

 

람다 표현식 (lambda expression) : 식 형태로 되어 있다고 해서 람다 표현식이라 부른다.

 

lambda 매개변수1, 매개변수2, ... : 매개변수를 이용한 표현식

lambda x : x + 1

람다 함수는 이름을 지정하지 않는다. (anonymous function)

람다 함수 자체를 실행하면 함수 객체가 출력되고 이 람다 표현식 만으로는 함수를 호출할 수 없다.

 

 

 

def 키워드를 통한 함수 생성

 

리터럴 표기법에 따른 함수 생성 방법

def plus_one(x):
    return x + 1

plus_one(2)

 

 

lambda 키워드를 통한 람다 함수 생성

 

람다 함수의 정의와 동시에 람다 표현식을 plus_one_lambda 와 같이 변수에 할당하면

lambda로 만든 익명 함수 호출이 가능하다.

plus_one_lambda = lambda x : x + 1
plus_one_lambda(2)

 

 

람다 함수는 정의와 동시에 사용도 가능하다.

 

 

· 람다 표현식 사용하기

 

람다 표현식이 사용되는 대표적인 예는 map()함수이다.

map(function, iterable, ...)

 

람다 표현식은 함수의 인수 부분에서 간단하게 함수를 만들 수 있다.

람다 표현식을 사용하면 따로 함수를 정의하여 만들지 않아도 되기 때문에 함수를 다른 함수의 인수로 넣을 때 편리하다.

 

 

def로 함수를 정의하여 정의된 함수를 map함수의 인수로 사용

def plus_one(x):
    return x + 1

def_result = list(map(plus_one, [1, 2, 3]))
print('def function result : ', def_result)

 

 

lambda 표현식으로 함수를 정의하여 map함수의 인수로 사용

lambda_result = list(map(lambda x : x + 1, [1, 2, 3]))
print('lambda function result : ', lambda_result)

 

 

 

 

참고 :

https://docs.python.org/3/reference/expressions.html

https://python-reference.readthedocs.io/en/latest/docs/operators/lambda.html

https://dojang.io/mod/page/view.php?id=2359

https://wikidocs.net/22804

https://velog.io/@pm1100tm/Python-lambda-%EB%9E%8C%EB%8B%A4

https://wikidocs.net/24

 

 

 

 

 

 

 

 

 

 

댓글