· 파이썬 람다 (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://velog.io/@pm1100tm/Python-lambda-%EB%9E%8C%EB%8B%A4
'Python' 카테고리의 다른 글
[python] 함수 안에서 함수 밖의 변수를 변경하기 (0) | 2021.12.02 |
---|---|
[python] dictionary key error 해결 하여 key 접근 방법 (0) | 2021.11.29 |
[python] Dataframe column 명 변경, column 순서 변경 (0) | 2021.10.21 |
[python] pandas dataframe 중복데이터 찾기, 제거하기 (duplicated / drop_duplicates) (0) | 2021.10.21 |
[python] 문자열 분리하기 합치기 ( split / join ) (0) | 2021.10.19 |
댓글