Stack Building

lambda, map, filter, reduce 본문

Python

lambda, map, filter, reduce

S00ahKim 2019. 7. 13. 23:49

1. lambda

ㅡ 메모리를 절약하고 가독성을 좋게 한다.

ㅡ 일반적으로 함수는 객체를 만들고 재사용을 위해 함수의 이름을 메모리에 할당하는데, 익명함수 람다는 이름을 가지지 않는다. 즉, 한 번 사용되고 나면 힙 메모리 영역에서 사라진다.

 

* iterable

ㅡ 반복 가능한 자료형

ㅡ 리스트, 문자열, 튜플 등이 해당

 

2. map

ㅡ map(함수, iterable)

ㅡ 특정 함수에 대한 수행 결과를 리턴

ㅡ 입력받은 자료형의 각 요소가 함수에 의해 수행된 결과를 묶어서 map iterator 객체로 리턴

ㅡ 메모리를 절약

ㅡ map의 결과를 list로 보고 싶으면 list()로 감싸줘야 한다. 그렇지 않으면 메모리 주소만 나옴

 

* iterator

ㅡ next() 메소드를 가지는 파이썬 객체

ㅡ 메모리에 올릴 데이터만 올려서 효율적으로 메모리를 사용함

ㅡ map iterator는 list() 또는 set() 등으로 다른 자료구조로 변환 가능

 

3. filter

ㅡ filter(함수, iterable)

ㅡ 특정 함수의 조건에 부합하는 값만 리턴

ㅡ 입력받은 자료형의 각 요소가 함수에 하나씩 입력되어 리턴값이 참인 것만 묶어서 리턴

ㅡ 인자로 들어갈 함수는 참이나 거짓을 리턴하는 것이어야 함

 

4. reduce

ㅡ reduce(함수, iterable, [initializer])

ㅡ 어떤 리스트에 대한 연산을 수행할 때, 결과를 축약하기 위해 사용된다. reduce 함수에 두 요소를 연산하는 로직 함수를 인풋으로 넣어야 한다.

ㅡ 사용예) 1~100까지의 합: print(reduce((lambda x,y : x+y), [x for x in range(1,101)]))

 

5. 출처

이터레이터, 이터러블, 이터레이션

https://wayhome25.github.io/cs/2017/04/03/cs-03/

https://3months.tistory.com/338

'Python' 카테고리의 다른 글

pandas 라이브러리  (0) 2019.07.16
numpy 라이브러리  (0) 2019.07.15
collections 모듈  (0) 2019.07.13
heapq 모듈  (0) 2019.07.10
Enumerate과 Zip  (0) 2019.07.09
Comments