본문 바로가기
Computer & Program/python

[python] lambda(람다)

by TDRemon 2024. 2. 16.
반응형

안녕하세요. TDR입니다.

오늘은 python에서의 lambda를 사용하는 방법에 대해서 정리해 보겠습니다.

우선 lambda가 무엇인지 부터 알아보면 (언어마다 약간의 차이는 있지만) 간략한 익명함수를 생성하는 것을 말합니다.

python에서도 간략한 한줄짜리 함수를 굳이 함수로 선언 안하고 간략하게 쓰고 싶을 경우 많이 사용합니다.

우선 lambda의 기본 형태를 먼저 살표 보겠습니다.

# 기본 형태
lambda <변수들>: <표현식>

# 기존 함수와 비교
def <함수_이름>(<변수들>):
  return <표현식>

위 코드를 보시면 기존 함수와 비교했을 때, <함수_이름>과 return 키워드가 생략되었습니다. 즉, lambda는 함수의 이름을 가지지 않으며(익명 함수), <표현식>은 자동으로 return이 되는 것을 알 수 있습니다.

python에서는 함수를 변수에 저장 가능하기 때문에 아래와 같이 익명함수표현식과 같이 쓸 수도 있습니다.

add_function = lambda x, y: x + y

print(add_function(1, 3))	# 4

그리고 선언과 즉시 호출하는 방법도 있는데 다음과 같습니다.

(lambda <변수들>: <표현식>)(<매개_변수>)

# 예시
print((lambda value, str_value: str(value) + str_value)(2024, ' year'))	# '2024 year'

그러면 예시로 저번에 올린 reduce 함수 정리 코드를 lambda를 이용해 변경해 보겠습니다.

(reduce 함수 정리 글은 아래 링크 확인)

 

[python] reduce 함수

안녕하세요. TDR입니다. 오늘은 python에서의 reduce 함수에 대해서 정리해 보겠습니다. reduce 함수는 쉽게 설명하면, 반복 가능한 객체에 저장된 숫자(numeric)들을 받아서 모두 더한 값을 반환해주는

tdremon.tistory.com

from functools import reduce

list_obj = list(range(1, 10))
init_value = 1

#def accumulate(x, y):
#  return x + y

# lambda로 위 주석처리된 함수를 구현
res = reduce(lambda x, y: x + y, list_obj, init_value)
print(res)	# 46

위와 같이 단발성으로 사용할 함수에 대해서는 굳이 함수 선언 없이 처리가 가능합니다.

반응형

'Computer & Program > python' 카테고리의 다른 글

[python] function (함수) - 01  (1) 2024.02.21
[python] closure(클로저)  (0) 2024.02.17
[python] reduce 함수  (0) 2024.02.15
[python] filter 함수  (0) 2024.02.14
[python] File I/O  (0) 2024.02.03

댓글