카테고리 없음
[python] lambda expression(람다 표현식)
haju
2023. 6. 18. 14:18
✅ 람다 표현식은 함수를 간편하게 작성할 수 있어 다른 함수의 인수로 넣을 때 주로 사용함
✅ 문법
lambda 매개변수들 : 식
✅ def 함수와 비교하기
▶ def
def plus_ten(x):
return x+10
print(plus_ten(1))
▶ lambda
print(lambda x:x+10)
ㄴ 결과값이 함수 객체로 나옴. 이 상태는 함수를 호출할 수 없다.
ㄴ 왜냐하면 람다 표현식은 이름이 없는 함수를 만들기 때문! ➡ anonumous function (익명함수)라고도 함
▶ lambda로 만든 익명 함수 호출하기 위해서는 변수에 람다 표현식 할당해야함
plus_ten=lambda x:x+10
print(plus_ten(1))
▶ 람다 표현식 살펴보기
- lambda x : x+10 은 매개변수 x 하나를 받고, x에 10을 더해서 반환한다는 뜻
- 즉, 매개변수, 연산자, 값 등을 조합한 식으로 반환값을 만드는 방식
▶ def로 만든 함수와 람다 표현식
✅ 람다 표현식 자체를 호출 ( 변수에 할당 X)
▶ 문법
(lambda 매개변수들 : 식)(인수들)
▶ 예제
print((lambda x:x+10)(1))
✅ 람다 표현식 안에서는 변수를 만들 수 없음 ❗
- 반환값 부분은 변수 없이 식 한 줄로 표현할 수 있어야한다.
- 변수가 필요한 코드일 경우 def로 작성하자!
print((lambda x:y=10;x+y)(1))
✅ 람다 표현식 바깥의 변수는 사용할 수 있음
- 매개변수 x와 람다 표현식 바깥의 변수 y를 더해서 반환함
y=10
print((lambda x:x+y)(1))
✅ 람다 표현식을 사용하는 이유
- 함수의 인수 부분에서 간단하게 함수를 만들 수 있음
- 대표적인 예로 map
def plus_ten(x):
return x+10
print(list(map(plus_ten,[1,2,3])))
print(list(map(lambda x :x+10,[1,2,3])))
✅ 람다 표현식으로 매개변수가 없는 함수 만들기
- lambda 뒤에 아무것도 지정하지 않고 :(콜론)을 붙인다.
- 콜론 뒤에는 반환할 값이 반드시 있어야함!
print((lambda :1)())
x=10
print((lambda :x)())