Python/Python 중급

Python 파이썬 lambda, 람다 표현식 기초

독학코딩 2022. 1. 18. 22:15
반응형

안녕하세요 독학코딩입니다. 오늘은 파이썬의 람다 표현식에 대해서 배워보겠습니다. 처음 lambda 라는 단어를 봤을때 ??? 이런 생각이 가장 먼저 들었던것 같습니다. 코드를 살펴보아도 직관적으로 이해하기 힘들점이 한 몫 했던것 같습니다.

 

람다 표현식은 간단한 함수를 더 간단하게 한줄로 표현하기 위한 방식이라고 생각하시면 좋습니다. if문, for문 한줄 표현식과 합쳐지면 강력한 도구가 되는 정말 유용한 기술입니다. if문, for문 한줄 표현식에 대해서 잘 모르신다면 아래 링크 참고하시면 도움이 되실겁니다.

 

 

Python 파이썬 for문, if문 한 줄로 쓰기

안녕하세요 독학코딩입니다. 오늘은 파이썬 for문, if문 한 줄로 쓰는 방법에 대해서 배워보겠습니다. 알아두면 코드를 컴팩트하게 쓰기 좋은 방법이니 참고 삼아 보시면 좋습니다. 혹시 for문, if

stcodelab.com

 

Python lambda 기초

def addtion(x):
    return 10 + x
my_func1 = addtion(12)
print(my_func1)

my_func2 = lambda x : 10 + x
print(my_func2(12))

 

람다 표현식이라는건 위와 같은 것입니다. 람다 표현식을 쓰지 않으면 4줄이 필요한 코드를 람다를 통해 2줄로 줄일 수 있는 것입니다. 이게 별거냐 생각할 수도 있지만, 수만 수십만 줄의 코드를 작성하다보면 엄청난 차이를 가져오게 됩니다.

 

Python lambda 내 변수

print((lambda x : 10 + x)(12))
print((lambda x : y + x)(12))

 

람다 표현식은 기본적으로 1개의 변수 x만 전달값으로 받습니다. (물론 x는 본인이 쓰기 나름입니다.) 하지만 y를 람다 외부에 선언해 놓으면 충분히 사용 가능합니다.

y = 10
print((lambda x : y + x)(12))

 

보통은 위의 예제가 여러 변수를 쓰는 유일한 방법이라고 생각하는데 그렇지는 않습니다. 람다도 변수를 여러개 선언하면 여러개의 변수를 사용할 수 있습니다.

my_func2 = lambda x, y : x + y
print(my_func2(12, 12))

 

위와 같이 : 앞에 여러개의 변수를 선언하면 람다도 여러개의 변수를 사용할 수 있습니다.

 

 

Python lambda 와 if문 활용

def check_data(x):
    if x <= 19 :
        return False
    else :
        return True
print(check_data(19))

lambda_check_data = lambda x : False if x <= 19 else True
print(lambda_check_data(22))

 

Python lambda 와 for문 활용


파이썬 람다와 for문의 활용은 정확히 for문을 사용한다고 말하기는 어렵습지만, 같은 기능을 구현하는 map() 함수를 사용합니다.

listA = []
for x in range(5):
    listA.append(x + 10)
print(listA)

listA = list(map(lambda x: x + 10, range(5)))
print(listA)

map() 함수는 map(함수, 리스트)로 사용하며, 리스트의 인자를 함수에 전달값으로 사용하여 mapping 한다고 생각하시면 됩니다.

위 포스트를 쭉 다 읽어보셨다면, 굳이 파이썬에서 람다 표현식을 쓰는 이유에 대해서 납득이 안되실겁니다. 아마 예제가 간단하게만 만들어서 그럴 것 같습니다. 실무에선 람다는 보통 함수 안에서 사용합니다. 위의 예제처럼 my_func2 = lambda x : 10 + x 이렇게 따로 변수로서 사용하지는 않습니다. 모든 사용방법을 설명드릴 순 없지만, 그래도 알고 계시면 나중에 다른 사람 코드에서 보거나 직접 사용할 일들이 생길겁니다.

 

반응형