Dolphins의 HelloWorld

lambda, map reduce 본문

python/python 심화

lambda, map reduce

돌핀's 2018. 7. 10. 14:44

Lambda


람다는 함수 이름 없이, 함수처럼 쓸 수 있는 익명함수를 의미한다.


사용방법은 java나 c#같은 언어에서의 방법과 거의 비슷하다.


단지 lambda라는 명령어를 따로 써주는것이 파이썬에서의 람다의 특징이다.


예시를 통해 간단하게 보고 넘어가겠다.


#매개변수 없는 경우
function1 = lambda : print('Hello')
function1()
#매개변수로 받은것을 제곱하는 함수
function2 = lambda x : x**2
print(function2(3))






Map


기본 형식은


map(function_name, list_data)


이며 list에 있는 모든 값들에게 사용자가 넣어준 함수를 적용시킨다.


def func (x):
    return x**3

mylist = [1,2,3,4,5]
print(list(map(func,mylist)))

func2 = lambda x,y : x*y
print(list(map(func2,mylist,mylist)))





Reduce


먼저


from functools import reduce


를 통해 import 해야 reduce를 사용할 수 있음에 유의하자.


reduce 함수를 사용하면 결국 list에 있는 값들이 하나의 값으로 통합된다.


예를들어


list = [1,2,3,4,5]


reduce(lambda x,y : x*y,list)


이렇게 함수를 사용한다면 x*y라는 function은 배열의 맨 앞부터 수행된다.


그러니까 처음에 1*2가 수행되고 그 결과값과 3이 곱해지며


이런식으로 마지막까지 function이 수행된다.


코드를 통해 잘 동작하는지 확인해보겠다.


from functools import reduce
print(reduce(lambda x,y:x*y,[1,2,3,4,5]))



'python > python 심화' 카테고리의 다른 글

urllib 와 Beautiful soup  (0) 2018.07.13
Enumerate,Zip  (0) 2018.07.10
Split, Join, List comprehensions  (0) 2018.07.10
Python의 문자표현  (0) 2018.07.09
Comments