람다표현식(lambda expression)

park paul·2021년 12월 10일
0
post-custom-banner

intro

lambda(), map(), filter(), reduce() 함수는 함수를 간단하게 만들어주는 함수들로 파이썬에서 프로그래밍할 때 if elif else문을 이용하여 복잡하게 하드코딩할 필요없이 한줄로 함수를 구현하게 해주는 함수들입니다.
그래서 람다표현식은 개발자의 생산성을 높여주는 문법이다.

장점 요약)
코드의 간결성
필요한 정보만을 사용해 퍼포먼스 향상- 이 경우 메모리상의 효율성 및 불필요한 연산의 배제가 가능

lambda

익명함수라고 불리는 람다함수는 람다표현식으로 함수를 더욱 간단하게 할 수 있다.

매개변수를 받아 다른 함수의 인수로 넣을 때 주로 사용한다.

사용법

def add(n,m):
	return n+m //기존 함수
print(add(2,3))
->5

이 것을 람다식으로 표현하면,

print((lambda n,m: n+m)(2,3))
->5

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

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

map

map은 함수와 리스트를 인자로 받고, 리스트의 요소를 각각 꺼내서 함수를 적용시킨 다음 그 결과를 새로운 리스트에 담아준다.

3의 배수를 문자열로 변환하는 예시

a=[1,2,3,4,5,6,7,8,9,10]
list(map(lambda x: str(x) if x % 3 == 0 else x, a))
[1,2,'3',4,5,'6',7,8,'9',10]


람다 표현식에서 if를 사용했으면 else를 반드시 사용해야한다. 그리고 elif는 사용 불가함.

filter

filter는 반복 가능한 객체에서 특정 조건에 맞는 요소만 가져오는데, 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]

reduce

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

  • reduce(함수, 반복가능한객체)
def f(x, y):
	return x+y
  
a= [1,2,3,4,5]

from functools import reduce

reduce(f,a)

=> 15

profile
Innovation is mine
post-custom-banner

0개의 댓글