lambda는 간단하게 함수를 생성할 수 있게 도와주는 예약어이다. 이렇게 생성된 함수를 람다 함수 또는 익명함수라고도 부른다. 람다로 생성을 한 함수들은 여러 가지 내장 함수들로 조금 더 정밀한 코드를 작성할 수 있는데, 자세한 것은 아래 사용 코드를 보고 이야기하자
Lambda의 정의와 사용
람다함수는 다음과 같이 생성, 사용한다.
>>> my_foo = lambda x : x+3
>>> my_foo(3)
6
>>> my_foo(5)
8
일반 함수처럼 정의했다면 다음과 같은 코드였을 것이다.
def my_foo(value) :
return value+3
물론 여러개의 인자를 받을 수도 있다.
>>> my_foo = lambda x,y,z : x*y*z
>>> my_foo(1,2,3)
6
사용법이 어렵게 느껴지지 않기를 바란다. (그래야 아래가 쉽다)
map()
map은 함수와, iterable 한 객체를 인자로 받아들인다. 아래의 코드를 예시로 보자
>>> my_list = list(map(lambda x : x+3, range(5))
>>> my_list
[3, 4, 5, 6, 7]
* range 객체는 iterable한 객체로, 낮은 용량으로 list를 구현할 수 있게 해 준다. 완전한 list는 아니고, range라는 객체로 생성된다.
filter()
filter또한 함수와, iterable 한 객체를 인자로 받아들이는데, 함수의 결과가 True인 것만을 원소로 추가한다. 아래의 코드를 예시로 보자
>>> my_list = list(filter(lambda x: x%2==0, range(10)))
>>> my_list
[0, 2, 4, 6, 8]
사실 람다와 친구인 reduce라는 함수도 있다. functools의 하위 함수인데, 모듈을 추가하여 설명하는 건 되도록 나중으로 미루고 싶어서 설명을 거두었다. 다음 시간은 Python과 친해지기 그 마지막 편인 Decorator를 만나보도록 하자
'Python > 파이선과 친해지기' 카테고리의 다른 글
[Python] - Python과 매우 친해지기-파라미터 args, kwargs (11) | 2021.07.11 |
---|---|
[Python] - Python과 매우 친해지기-데코레이터(Decorator) (2) | 2021.04.10 |
[Python] - Python과 매우 친해지기-내포(Comprehension) (0) | 2021.04.10 |
[Python] - Python과 매우 친해지기-Iterator와 Generator (0) | 2021.04.10 |
[Python] - Python과 매우 친해지기-주석 (0) | 2021.04.10 |