IT/프로그래밍

[파이썬] 파이썬 람다함수 [패스트 캠퍼스 챌린지 30일]

뜻밖의 행복 2022. 2. 22. 21:13
반응형

안녕하세요? 뜻밖의 행운입니다.

패스트 캠퍼스 챌린지 30일차 입니다.

오늘은 함수중급 중에서 람다함수에 대해서 배웠습니다.

오늘 람다함수를 배우기전에 사실

람다 단어는 AWS에서 먼저 들었고 

해당 기능이 서버리스를 위해서 간단하게 사용가능한 기능이었는데

파이썬에서도 비슷한 느낌이라 참 신기했습니다.

 

람다함수

 

우선 람다 함수란 저희가 변수나 함수를 정의 할때 항상 이름을 짓는게 힘들었는데

그 이름을 지을 필요도 없는 간단한 형태의 함수를 말합니다.

그리고 다른 함수의 인자로 넣을 수 있습니다.

사용하는 이유는 뭐 역시나 코드를 간결하게 사용하고 메모리를 절약하기 위해서 

사용합니다.

 

그렇다면 어떻게 사용하느냐?

값을 넣으면 - 1을 해주는 함수를 정의 한다고 했을 때

 

기존에 배운대로 정의 한다면

def minus_one(a):
    return a-1

def로 함수 이름을 정의하고 매개변수는 어떻게 사용할지 하고 

아래 내용을 썼어야 했으나 

 

람다를 이용하면 아래와 같이

lambda a : a-1

그냥 lambda라 쓰고 매개변수와 어떻게 동작할지 한줄로 가능합니다. 

엄청나게 간결해지는게 느껴지죠?

 

그렇다면 어떻게 호출하고 사용할까요? 

두 가지 방법이 있습니다.

 

#함수 자체를 호출
print((lambda a : a-1)(10))

#변수에 담아서 호출
minus_one_2 = lambda a : a-1
print(minus_one_2(100))

그냥 함수 자체를 괄호로 묶어서 사용하는 방법이 첫 번째이고

변수에 할당하여 호출하여 사용하는것이 두 번째 방법입니다.

 

작동시켜 보면 위처럼 잘 동작하는게 보입니다.

그렇다면 람다에서 가장 많이 사용하는 조건문은 어떤식으로 사용할까요?

# 기존 방식
def is_positive_number(a):
    if a > 0:
        return True
    else:
        return False

# 람다 함수를 이용한 방식
lambda a : True if a > 0 else False

네 엄청나게 간결한것이 보입니다.

True 조건문 if 앞에 그리고 반드시 else도 같이 사용해야 합니다.

 

실제로 잘동작하는지 람다 함수 호출하는 방법을 이용해서 볼까요?

네 아주 잘 동작하는 것을 볼 수 있습니다.

점점 배워가면서 코드 줄이 많아 지는것 같으면서도 그것들을 또 간략하게 줄이는 기능들을 배우니 참 

아직까지는 재미있는 단계입니다.

 

반응형