반응형

lambda : 쓰고 버리는 일시적인 함수 / 함수가 생성된 곳에서만 필요

즉, 간단한 기능을 일반적인 함수와 같이 정의해두고 쓰는 것이 아니고, 즉시 사용하고 버릴 수 있다.

 

람다 함수 사용법

>>> def inc(n):

	return lambda x: x + n



>>> f = inc(2)

>>> g = inc(4)

>>> print(f(12))

14

>>> print(g(12))

16

>>> print(inc(2)(12))

14

1. map() : 두개의 인수를 가지는 함수 

r = map(function, iterable ...)

- function : 함수 이름

- iterable : 한번에 하나의 멤버를 반환할 수 있는 객체

- map은 리스트의 요소를 각각 처리하므로 lambda의 반환값도 요소여야 한다

 

>>> a = [1,2,3,4]

>>> b = [17,12,11,10]

>>> list(map(lambda x, y:x+y, a,b))

[18, 14, 14, 14]

 

2. filter() 함수

 r = filter(function, iterable)

 

- filter에 인자로 사용되는 function 은 처리되는 각 요소에 대해 boolean 값을 반환

- true 반환 : 그 요소만 남고

- false : 그 요소 제거

 

>>> sort = [2, 18, 9, 22, 17, 24, 8, 12, 27]

>>> list( filter(lambda x: x % 3 == 0, sort) )

[18, 9, 24, 12, 27]

 

3. reduce() 함수

functools.reduce(function, iterable[, initializer])

- 두 개의 필수 인자 + 하나의 옵션 인자

- function 을 사용해서 itreralble 하나의 값으로 줄인다. 

- initializer 사용 시 첫 번째 인자로 추가된다

 

>>> from functools import reduce

>>> reduce(lambda x,y: x+y, [1,2,3,4,5])

15

반응형

'Language Study > Python' 카테고리의 다른 글

리스트에 map 사용하기  (0) 2020.01.27
프린트문 옵션(문자열 형식)  (0) 2020.01.05
python " _ " (언더바) 쓰임  (5) 2020.01.05
List & Tuple  (0) 2020.01.05
swap  (0) 2020.01.04

+ Recent posts