[python] 파이썬 람다 표현식 사용하기

지금까지는 def로 함수를 정의해서 사용했습니다. 람다 표현식도 함수와 같은 기능을 하지만 1회성으로 사용이 되고 
사용을 한다면 코드의 양을 눈에 띄게 줄일 수 있다는 장점이 있습니다. 

기본 사용법 : lambda 매개변수들 : 식

우선 같은 기능을하는 함수와 람다식의 표현이 어떻게 다른지 확인해보겠습니다.

 

#람다 표현식

일반 함수

#일반 함수
def plus(x):
    return x + 5

plus(1)
#출력
6

람다 표현식

plus = lambda x: x + 5
plus(1)
#출력
6

lambda x: x + 5는 매개변수 x 하나를 받고, x에 5를 더해서 반환합니다.
매개변수,연산자,값을 조합해 반환값을 만들어 줍니다.

 

#람다 표현식 자체에서 호출하기

print((lambda x: x + 5)(1))

#출력
6

위와 같이 람다 표현식을 ()로 묶고 다시 ()인수를 넣어서 호출할 수 있습니다.

 

람다식에서는 변수를 생성할 수 없고 생성되어있는 변수만 사용할 수 있습니다.

y = 10
print((lambda x: x + y)(2))
#출력
12

y = 10이 람다식 안에 들어가면 오류가 납니다.

 

#map과 list를 사용하여 1개 이상의 값 반환하기

z = 20
print(list(map(lambda x: x + z, [1, 2, 3])))
#출력
[21, 22, 23]

 

#조건부 표현식 사용하기

a = [1,2,3,4,5,6,7,8,9]
list(map(lambda x: str(x) if x % 3 == 0 else x, a))
#출력
[1, 2, '3', 4, 5, '6', 7, 8, '9']

map을 사용하여 리스트 a값중 3의 배수에 해당하는 int를 str 형식으로 형변환 해줍니다.

위의 표현식을 일반 def로 변환하면 이렇게 사용 가능합니다.

a = [1,2,3,4,5,6,7,8,9]
def f(x):
    if x % 3 == 0:
        return str(x)
    else:
        return x
list(map(f,a))

 



댓글

Designed by JB FACTORY