09 lambda

lambda function

  • lambda function(익명함수)란 말 그대로 이름이 없는 함수이며 파이썬에서는 lambda 라는 키워드로 익명 함수를 정의할 수 있다
    • 주로 비교적 간단한 기능의 함수가 컨테이너의 요소로 들어가는 경우 혹은 다른 함수의 인자로 함수를 넘겨줄 필요가 있을 때 사용됨
    • 데이터 처리 특성 상, 그 함수들은 단순한 작업을 하며 이후 함수를 재활용할 필요가 적기 lambda 함수를 많이 사용함
  • lambda 함수는 다음과 같은 3가지 패턴으로 많이 사용된다.
    1. map: 첫번째 argument로 주어진 함수를 이후의 argument에 적용하는 함수
    2. filter:첫번째 argument로 주어진 함수 값의 True/False인지에 따라 두번째로 주어진 argument의 값을 (True일 경우에) 내보내는 함수
    3. reduce: 첫번째 argument로 주어진 함수 값을 이용해 두번째로 주어진 argument의 1st, 2nd 값을 처리한 결과와 3rd 값을, 그리고 다시 이 결과와 4번째 값을 인자로 하는 형태로 주어진 값의 끝까지 처리하는 함수
In [1]:
# map
list(map(lambda x: x ** 2, range(5))) 
Out[1]:
[0, 1, 4, 9, 16]
In [2]:
# map
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list(map(lambda x: str(x) if x % 3 == 0 else x, a))
Out[2]:
[1, 2, '3', 4, 5, '6', 7, 8, '9', 10]
In [4]:
# filter
a = [8, 3, 2, 10, 15, 7, 1, 9, 0, 11]
list(filter(lambda x: x > 5 and x < 10, a))
Out[4]:
[8, 7, 9]
In [3]:
# reduce
a = [1, 2, 3, 4, 5]
from functools import reduce
reduce(lambda x, y: x + y, a)
Out[3]:
15


© 2017. All rights reserved.

Powered by ZooFighter v0.12