[Python] 람다 표현식 사용하기
- Language/Python
- 2020. 10. 15.
지금까지 def 함수를 정의해서 사용했지만, 람다 표현식으로 익명 함수를 만들 수가 있다.
기존 def 코드
def plus_ten(x):
return x + 10
plus_ten(1)
람다식 코드
plus_ten = lambda x : x+ 10
print(plus_ten(1))
람다식은 이처럼 한 줄 코딩에 도움이 된다.
람다식은 자체를 호출 할 수 있는 기능이 있다.
print((lambda x : x +10)(1))
람다식 식을 세우는 것과 자기 자신을 부르는 방법이다.
람다 표현식의 주의사항
람다 표현식 안에서는 새 변수를 만들 수가 없다.
반환값 부분은 변수 없이 식 한줄로 표현 할 수 있어야 한다.
변수가 필요한 코드일 경우에는 def로 함수를 작성하는 것이 좋다.
y = 10
(lambda x : x+y)(1)
>>>11
이 람다식을 보았을 때 변수 선언은 바깥에 해줘도 사용 할 수 있는 모습을 볼 수 있다.
한 마디로, 람다식은 변수의 사용이 의외로 자유롭다는 점이다.
람다 표현식을 인수로 사용하기
list(map(lambda x : x + 10, [1, 2, 3]))
리스트의 값을 map을 이용해서 모두 집어 넣을 수가 있다.
람다 표현식을 사용하는 이유는 함수의 인수 부분에서 간단하게 함수를 만들기 위해서다.
람다 표현식에 조건부 표현식 사용하기
a = [1, 2, 3, 4, 5, 6, 7, 8 ,9, 10]
b = list(map(lambda x : x if x % 3 != 0 else x*2, a))
>>>[1, 2, 6, 4, 5, 12, 7, 8, 18, 10]
a의 리스트 값을 앞에서 배운 if와 else를 통해서 결과값을 바꿀 수가 있다.
amp에 객체를 여러개 넣기
a = [1, 2, 3, 4, 5]
b = [2, 4, 6, 8, 10]
list(map(lambda x, y : x * y, a, b))
>>>[2, 8, 18, 32, 50]
리스트 2개를 처리할 때 람다 표현식에서 lambda x, y : x * y처럼 매개변수를 두개로 지정하면 된다.
filter 사용하기
filter(함수, 반복 가능한 객체) 방식으로 사용한다.
def f(x):
return x > 5 and x < 10
a = [8, 3, 2, 10, 15, 7, 1, 9, 0, 11]
list(filter(f, a))
>>>[8, 7, 9]
람다식으로 표현
a = [8, 3, 2, 10, 15, 7, 1, 9, 0, 11]
list(filter(lambda x : x >5 and x <10, a))
반응형
'Language > Python' 카테고리의 다른 글
[Python] 클래스 사용하기 (0) | 2020.10.16 |
---|---|
[Python] 변수의 사용범위 알아보기 (0) | 2020.10.15 |
[Python] 함수에서 위치 인수와 키워드 인수 사용하기 (0) | 2020.10.15 |
[Python] 파일사용하기 (0) | 2020.10.14 |
[Python] 문자열 응용하기 (0) | 2020.10.14 |