Python - Lambda (함수의 간단한 표현 방법)

컴퓨터/Python

728x90
반응형

Lambda란?

종종 다양한 프로그래밍 언어를 접하다 보면 람다식이라는 들어봤을 겁니다. 프로그래밍 언어에서 람다식을 간단하게 정의하자면 함수를 간단하게 표현하는 문법입니다

아래와 같이 프로그래머가 일반적인 표현으로 함수를 만들었다고 가정합시다.

def sum(a,b):
    return a+b

이 함수를 람다식으로 표현한다면 아래와 같이 표현이 가능합니다.

sum_lambda = lambda a,b:a+b

조금 더 간결하게 표현이 가능한 식이라는 것이죠.

 

Lambda 식 문법 만들기

람다식 문법을 만드는 방법은 아래와 같습니다.

lambda 인자 : 수식

간단하게 위의 예제를 통해 몇 가지 lambda 식을 사용하는 방법에 대해 알아보도록 하겠습니다.

 

  • 함수명이 없는 람다식
print((lambda a,b : a+b)(5,5))

함수명이 없이 1회성으로 기능만을 구현할 때 가능합니다.

  • 변수명을 넣어 재사용성 강화
sum_lambda = lambda a,b:a+b
print(sum_lambda(5,5))

이름을 지정하여 사용하여 반복성을 강화 할 수도 있습니다.

 

장단점

장점은 람다식 표현으로 함수를 간단하게 작성하여 사용할 수 있습니다.

하지만 여러가지 연산의 표현을 하기에는 제약 조건이 많습니다.

 

그렇다면 사용하는 이유는 무엇일까요?

Python에 내장되어 있는 함수인 map함수를 가지고 예를 들어 보겠습니다.

 

map 함수의 원형입니다.

map(함수,리스트)

map 함수의 기능입니다.

map 함수는 특정 리스트를 첫번 째 인자 함수에 적용하여 새로운 리스트를 만들어 줍니다.

즉, 특정 리스트에 조건을 걸어 새로운 리스트로 만들어주기 위한 함수입니다.

 

이때 기본적인 함수표현으로 첫 번째 인자(조건) 부분을 만들려면 아래와 같습니다.

def func(x):
    return x ** 2
b = map(func,range(5))
print(list(b))

조건 부분의 내용을 확인하려면 함수를 정의한 부분을 가야만 확인할 수 있습니다. 소스코드가 길어지고 함수의 위치를 찾는 것은 상당히 귀찮은 일이 될 수도 있습니다.

 

하지만 람다식 표현을 사용한다면 아래와 같이 직관적으로 바뀔 수 있게 됩니다.

a = map(lambda x: x ** 2, range(5))
print(list(a))

바로 map함수에 들어가는 조건을 확인할 수 있게 되는 것입니다. 이런 식으로 람다식 표현을 잘 활용하게 된다면 효율적인 소스 관리가 가능하게 됩니다.

728x90
반응형

'컴퓨터 > Python' 카테고리의 다른 글

Python - class 2 (self, __init__ 키워드)  (0) 2022.01.19
Python - class1(객체 지향을 지원한다)  (0) 2022.01.18
Python - Tuple(튜플)  (0) 2021.11.24
Python - 함수(Function)  (0) 2021.11.18
Python - 주석 (Comment)  (0) 2021.11.16

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :