반응형
Lambda 라는 함수가 있다.
Lambda function(람다 함수)라는 말 말고도 Lambda expression(람다식)이라고도 한다.
간단히 말해서 이름없는 함수이다.
왜 이런 이름없는 근본도 없는(?) 함수를 쓰느냐? 간결하게 하기 위해서다
다음과 같은 함수가 있다고 가정하자.
>>> divmod(3.0,15.0)
>>> def greeting(a):
print(a)
>>> post = greeting # greeting 이라는 함수는 ref가 참조하게 된다.
>>> post('hi') # hi가 출력된다.
hi
greeting이라는 함수를 통해서 post라는 변수에 저장을 한뒤에 post함수에 hi라는 문자열을 넣으면 hi가 출력된다.
Lambda함수를 이용하여 한줄로 처리해 보겠다.
>>> greeting = lambda a : print(a) # 여기서 a는 임의로 넣었다. 문자열 어떤것이든 넣을 수 있다.
>>> greeting('hi')
hi
위와 똑같은 결과가 나온다.
매개변수가 2개인 경우도 잘 활용할 수 있다.
>>> f1 = lambda n1, n2 : (n1+n2) # 괄호 생략해도 무방하다.
>>> f1(3, 4)
7
다른 내장함수와 결합해서 사용
>>> length = lambda a : len(a)
>>> length('whereareyougoing?')
17
매개변수가 없어도 동작
>>> f3 = lambda : print('yes') # 매개 변수가 없다.
>>> f3()
yes
함수내 함수 구조의 코드를 간단하게 하는데에도 활용
>>> def 제곱(n):
>>> def exp(x):
>>> return x ** n
>>> return exp
>>> f2 = 제곱(2) #제곱
>>> f3 = 제곱(3) # 실제 세제곱이다. 함수 이름만 제곱인 경우
>>> f2(4) # 4의 제곱
>>> f3(4) # 4의 세제곱
16
64
다음과 같이 이중함수로 짠 코드가 있다.
Lambda 함수로 간결하게 작성이 가능하다.
# 위의 식을 lambda 함수로 간결하게 작성하기
>>> def 제곱(n):
>>> return lambda x : x ** n
>>> f2 = 제곱(2)
>>> f3 = 제곱(3)
>>> f2(4)
>>> f3(4)
16
64
똑같은 결과가 나온다.
매개변수와 인자를 한번에
>>> multi_cal = (lambda x, y, z : x*y*z) (1, 2, 3) # 매개변수와 인자가 한방에
>>> multi_cal
6
매개변수와 인자를 한번에 넣어서 함수값을 출력하는 방법도 있다.
람다함수는 이처럼 간결한 코드로 사용하기 위해서 하는 것이 목적이다.
반응형
'Python > Basic' 카테고리의 다른 글
[파이썬] Function 작성법 총정리 (0) | 2023.07.21 |
---|---|
[Python] glob함수 사용 (0) | 2022.11.07 |
[Python] 설치된 모든 패키지 버전 확인 (0) | 2022.10.25 |
[파이썬]포매팅(formatting) 총정리 - 1 (0) | 2022.09.08 |
[Python] 파일 읽고 쓰기 (0) | 2022.04.17 |