본문 바로가기
기본소양/Pythonic CODE

[Pythonic CODE] 4. Lambda & Map & Reduce

by EXUPERY 2021. 1. 24.
반응형

 

Lambda & Map Reduce

Life is short, you need python !

 


 

Lambda function

함수에 이름이 없는 것입니다. 익명함수라고 불립니다. 간단한 개념이지만, 뒤에 맵리듀스와 함께 쓰일 때 더 좋기도하고 많이 쓰이기도하기 때문에 넣었습니다. 사실 python 3부터는 쓸 필요가 없다고는 하지만 Pandas와 같은 라이브러리와 쓰일 때 여전히 효율적입니다.

함수를 선언하는 것이 일반적이지만, 람다함수를 사용하면 더 간단하게 함수를 정의할 수 있습니다.

 

 

Map function

https://www.w3schools.com/python/ref_func_map.asp

Map함수는 (함수, 함수를 적용할 시퀀스)를 입력하여 값을 반환합니다. 반환되는 값은 함수에 적용이 된 각 요소들입니다. 위의 예시를 보면 함수는 len(n)을 반환합니다. (string의 길이를 나타내는 함수)결과값은 ['5','6','6']이 됩니다. apple과 banana, cherry에 각각 len( )이 적용되어 반환되는 것을 알 수 있습니다.

* python3부터는 앞에 list( )를 붙이지 않으면 <map object at 0x00000000>형식으로 나타나는데, 이는 메모리 내에 값이 위치한 주소를 나타냅니다.

** python3부터는 list comprehension으로도 할 수 있어 권장되지는 않습니다.

 

 

Reduce function

reduce함수도 map과 마찬가지로 (함수, 함수를 적용할 시퀀스)를 인자값으로 받습니다. 하지만 map과는 다르게 함수를 순서대로 적용합니다. 아래 예시입니다.

lambda함수는 x와 y를 입력했을 때, x와 y를 더해줍니다. 이를 my_list에 reduce함수를 이용하여 적용하면,

1과 3이 더해집니다

4와 5가 더해집니다.((1+3)+5)

9와 7이 더해집니다.(((1+3)+5)+7)

16과 9가 더해집니다.((((1+3)+5)+7)+9)

25가 반환됩니다.

 

 

반응형

'기본소양 > Pythonic CODE' 카테고리의 다른 글

[Pythonic CODE] 6. Collections  (0) 2021.01.24
[Pythonic CODE] 5. Asterisk ( * )  (0) 2021.01.24
[Pythonic CODE] 3. Enumerate & Zip  (0) 2021.01.24
[Pythonic CODE] 2. Split & Join  (0) 2021.01.24
[Pythonic CODE] 1. List Comprehension  (0) 2021.01.24

댓글