lambda
참조 :
https://offbyone.tistory.com/73
파이썬 문법 5 - 람다(lambda) 함수
파이썬에서 "lambda" 는 런타임에 생성해서 사용할 수 있는 익명 함수 입니다. 이것은 함수형 프로그래밍 언어에서 lambda와 정확히 똑같은 것은 아니지만, 파이썬에 잘 통합되어 있으며 filter(), map
offbyone.tistory.com
■ Lambda
1) 정의 :
런타임에 생성해서 사용 가능한 익명함수
- filter / map / reduce 등과 같이 사용하면 강력함
lambda param1<, param2...> : 표현식
# return 문이 포함되어있지 않음, 표현식 자체가 return 된다
g = lambda x: x**2
print(g(8))
>>> 64
f = lambda x, y: x + y
print(f(4, 4))
>>> 8
■ Lambda & filter
r = filter(function, iterable)
# filter에 인자로 사용되는 function은 처리되는 각각의 요소에 대해 Boolean 값을 반환합니다.
# True를 반환하면 그 요소는 남게 되고, False 를 반환하면 그 요소는 제거 됩니다.
# 전체 return r은 iterator : data 접근시 형변환 수행해야 접근 가능 ( list(r) dict(r) tuple(r) ...)
foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
list( filter(lambda x: x % 3 == 0, foo) )
>>> [18, 9, 24, 12, 27]
■ Lambda & reduce
1) 정의 :
reduce 함수는 functools 로 외부에서 가져와야함
- iterable 순회하며 return값을 Stopiteration 까지 "재 대입"
import functools
functools.reduce(function, iterable[, initializer])
# initializer -> 초기 시작값, iterable 돌 때 초기값
# iterable의 마지막까지 결과값을 function에 재 대입하면서 끝남과 동시에 값을 return 해줌
from functools import reduce
reduce(lambda x,y: x+y, [1,2,3,4,5])
>>> 15