본문으로 바로가기

람다 표현식 사용하기

category Python/python 2020. 10. 19. 16:17

람다 표현식(lambda expression)

 : 이름 없는 함수를 만들기 때문에 익명 함수(anonymous function)이라고 부르기도 함

 : 식 형태로 되어 있음

 : 함수를 간편하게 작성할 수 있어서 다른 함수의 인수로 넣을 때 주로 사용

 

람다 표현식으로 함수 만들기

 : 더하기 10 함수 만들기 - 람다 표현식X

 : 더하기 10 함수 만들기 - 람다 표현식O

lambda 매개변수들: 식

 

람다 표현식 자체를 호출하기

(lambda 매개변수들: 식)(인수들)

 

람다 표현식 안에서는 변수를 만들 수 없다

 : 반환값 부분은 변수 없이 식 한 줄로 표현할 수 있어야 함

 : 변수가 필요한 코드일 경우에는 def로 함수를 작성하는 것이 좋음

 

 : 바깥에 있는 변수는 사용할 수 있음

 

람다 표현식을 인수로 사용하기

 : 람다 표현식을 사용하는 이유는 함수의 인수 부분에서 간단하게 함수를 만들기 위해서입니다.

   - 이런 방식으로 사용하는 대표적인 예가 map입니다

 

 : def

 : lambda

   - 함수를 다른 함수의 인수로 넣을 때 매우 편리함

 

람다 표현식으로 매개변수가 없는 함수 만들기

 : 매개변수가 없는 함수를 만들 때는 lambda 뒤에는 아무것도 지정하지 않고 :(콜론)을 붙임

 : 단, 콜론 뒤에는 반드시 반환할 값이 있어야 함(표현식은 반드시 값으로 평가되어야 하기 때문)

 

 

람다 표현식에 조건부 표현식 사용하기

lambda 매개변수들: 식1 if 조건식 else 식2

 : map을 이용하여 리스트 a에서 3의 배수를 ★로 변환

   - 3의 배수일 때는 '★'로 요소를 ★로 만들어서 반환

   - 3의 배수가 아닐 때는 x로 요소를 그대로 반환

 : 람다 표현식에서 if를 사용했다면 반드시 else를 사용해야 함

 

 : 람다 표현식 안에서는 elif를 사용할 수 없음

 : 따라서 조건부 표현식은 식1 if 조건식 else 식2 if 조건식 else 식3 형식처럼 if를 연속으로 사용해야 함

lambda 매개변수들: 식1 if 조건식1 else 식2 if 조건식2 else 식3

 : 별로 복잡하지 않은 조건인데도 알아보기 힘들 경우에는

   억지로 람다 표현식을 사용하기보다는 def로 함수를 만드는 것을 추천

 

 

map에 객체를 여러 개 넣기

map(lambda 매개변수1, 매개변수2: 식, 객체1, 객체2)

 : 람다 표현식의 매개변수 개수에 맞게 반복 가능한 객체도 콤마로 구분해서 넣어주면 됨

 

filter 사용하기

:  filter는 반복 가능한 객체에서 특정 조건에 맞는 요소만 가져오는데

   filer에서 지정한 함수의 반환값이 True일 때만 해당 요소를 가져옴

filter(함수, 반복 가능한 객체)

 : def

 : lambda

 

 

reduce 사용하기

 : 반복 가능한 객체의 각 요소를 지정된 함수로 처리한 뒤 이전 결과와 누적해서 반환하는 함수

 : reduce는 파이썬3부터 내장 함수가 아니기 때문에 functools 모듈에서 reduce 함수를 가져와야 함

from functools import reduce
reduce(함수, 반복 가능한 객체)

 

 : def

 : lambda

 

 : reduce x + y 동작

 

 

반응형

'Python > python' 카테고리의 다른 글

클래스  (0) 2020.10.19
클로저 사용하기  (0) 2020.10.19
함수에서 재귀호출 사용하기  (0) 2020.10.19
함수에서 위치 인수와 키워드 인수 사용하기  (0) 2020.10.16
함수 사용하기  (0) 2020.10.16