728x90
lambda expression 이란?
간편하게 익명함수를 만드는 문법입니다.
예제
plus_one 함수는 기본형태이고, 이와 동일한 기능을 하는 plus_one2 함수는 람다 표현식으로 나타냈습니다.
plus_one2 의 함수명은 <lambda> 로 나타나는 것을 볼 수 있습니다.
def plus_one(x):
return x + 1
plus_one2 = lambda x: x + 1
print(plus_one.__name__)
print(plus_one(5))
print(plus_one2.__name__)
print(plus_one2(10))
더보기
plus_one
6
<lambda>
11
바로 호출을 하고 싶을 경우는 다음과 같이 사용하면 됩니다.
>>> (lambda x: x + 1)(10)
11
람다 표현식의 사용
람다 표현식은 map() 함수에 자주 사용합니다.
컴프리헨션 표현식과 비교.
array = [99, 77, 55, 33, 11]
y = 10
m = map(lambda x: x - y, array)
c = [x - y for x in array] # comprehension
print(list(m))
print(c)
더보기
[89, 67, 45, 23, 1]
[89, 67, 45, 23, 1]
매개변수가 없는 함수는 다음과 같이.
>>> t = lambda : True
>>> f = lambda : False
>>> zero = lambda : 0
>>> t()
True
>>> f()
False
>>> zero()
0
주의사항
lambda x, y: x + y
람다 표현식에 대입연산은 할 수 없습니다.
>>> lambda x, y: z = x + y
File "<stdin>", line 1
SyntaxError: can't assign to lambda
다음 에러의 문장과 똑같은 표현.
>>> def func2(x, y):
... return z = x + y
File "<stdin>", line 2
return z = x + y
^
SyntaxError: invalid syntax
'Language > Python' 카테고리의 다른 글
파이썬 클래스 정의하기 네임스페이스 __dict__ (0) | 2020.07.10 |
---|---|
파이썬 map, filter 함수 사용하기 - comprehension (0) | 2020.07.10 |
파이썬 컴프리헨션 표현식 사용하기 comprehension (0) | 2020.07.09 |
파이썬 딕셔너리 정렬하기 내장함수 sorted() (0) | 2020.07.09 |
파이썬 딕셔너리 사용하기 dict (0) | 2020.07.09 |