[Python] 파이썬 X 람다(Lambda)



람다 란?

한마디 버전

한국어 : 람다는 익명의 함수 입니다. 람다는 제한 없이 인수(Arguments)를 받아 드릴 수 있지만, 한개의 익스프레션만 가질 수 있습니다.

영어 : Lambda is a small and anonymous function. It can take any number of arguments, but have only one expression.


사전적 의미 :  Λ, λ(그리스어: λάμδα 람다[*])는 그리스 문자 중의 11번째, 그리스 숫자로는 30을 뜻한다.

Λ는 다음과 같이 사용된다.
  • 입자물리학에서 람다 중입자
  • 우주 상수
λ는 다음과 같이 사용된다.
  • 물리학에서 파장
  • 방사선 반감기
  • 선형대수학에서 고윳값
  • 신경생물학에서 길이상수
  • 람다 대수에서 함수 표현식
  • 리스프, 파이썬 등의 프로그래밍 언어에서, 함수를 정의할 때에 사용된다.
  • 게임 하프라이프 시리즈의 로고이자 작중에 등장하는 반시민의 상징.
출처 : 위키피디아



1. 사용법

lambda arguments : expression
x = lambda a : a + 100
print(x(200))

x = lambda a, b : '{} {}를 곱한 값은 {}입니다.'.format(str(a), str(b), str(a*b))
print(x(2, 5))

x = lambda a, b, c : ' '.join([a, b, c])
print(x('몇 개든', '상관', '없어요')) >>> 300 >>> 2와 5를 곱한 값은 10입니다. >>> 몇 개든 상관 없어요



2. 왜 사용할까?

람다의 백미는 함수 안에서 다른 작은 익명의 함수로 사용할 수 있다는 것 입니다.

def myfunc(n):
return lambda a : a * n

double = myfunc(2)
print(double(11))

triple = myfunc(3)
print(triple(11))



# 이런 방식으로도 사용할 수 있습니다.
print((lambda x: x + 50)(10))

# 람다를 이용한 Sorting
student = [
['김철수', 'A', '2학년'],
['이영희', 'B', '3학년'],
['딩그르', 'F', '1학년'],
['짱짱맨', 'C', '1학년']
]
#학년으로 먼저 소팅 후 학년이 같으면 학점으로 다시 소팅
print(sorted(student, key=lambda x: (x[2], x[1])))


# 람다 안에서 변수 선언? 노노~
print((lambda x: y = 10; x + y)(1)) >>> 22 >>> 33 >>> 60 >>> [ ['짱짱맨', 'C', '1학년'], ['딩그르', 'F', '1학년'], ['김철수', 'A', '2학년'], ['이영희', 'B', '3학년'] ] >>> File "python.py", line 29 print((lambda x: y = 10; x + y)(1)) ^ SyntaxError: invalid syntax



여담:

람다의 목적은 인문계과 이공계를 나누는 역할을 합니다.

入이 뭐냐고 물으면 인문계는 '들 입' 이라고 하고, 이공계는 '람다' 라고 한다고 합니다. ㅋㅋ





  • [[a.original_name]] ([[a.file_size | fileSizer]])
좋아요[[ postLike | likePlus ]]
공유
라이언

“Lead Python Engineer”

댓글 [[totalCommentCount]]
[[ comment.author__nick_name ]] [[ comment.datetime_updated | formatDate]] (수정됨)

[블라인드 처리된 글 입니다.]

답장
[[ sub.author__nick_name ]] [[ sub.datetime_created | formatDate ]] (수정됨)

취소
댓글을 남겨주세요.
'파이썬' 관련 최신 포스트
[[ post.title ]]
[[ post.datetime_published_from | DateOnly ]]