안녕하세요. 오늘은 파이썬에서 유용하게 사용하는 람다 형식에 대해서 알아보도록 하겠습니다.
밑에 코드와 같이 여러가지 함수를 만들어서 사용도 가능합니다.
func = lambda x: x + 1
print(func(10))
또는, 정해진 함수들 map(), reduce(), filter()을 사용하여 원하는 결과를 얻을 수 있습니다.
[ Map() ]
첫번째로 map()함수를 알아보도록 하겠습니다. map() 함수는 첫번째를 함수로 인자로 받으며, 두번째는 리스트를 받습니다.
해당 map() 함수는 input을 건드려 원하는 값을 리스트로 반환하는 느낌이라고 생각하시면 됩니다.
map(함수, 리스트)
파이썬에서 예제로 확인해보면
list(map(lambda x: x ** 2, range(4)))
해당 소스는 lambda x의 값은 x**2라는 설명이며, range(4)는 0,1,2,3 의 값을 x에 넣어주는 값입니다.
그렇게되면 list(0**2, 1**2, 2**2, 3**2)의 값이 들어가게 되며 **는 제곱 연산자이므로 제곱된 값들이 리스트로 들어가게 됩니다.
결과 값은 (0, 1, 4, 9) 값이 출력될 것입니다.
[ Reduce() ]
두번째로는 reduce()함수 입니다. reduce()함수는 첫번째는 함수를 인자로 받고, 두번째로는 시퀀스를 인자로 받습니다. 여기서 시퀀스는 문자열, 리스트, 튜플로 이루어진 것을 생각하시면 됩니다.
reduce(함수, 시퀀스)
from functools import reduce
Array_ = [1, 2, 3, 4, 5]
reduce(lambda x, y: x + y, Array_)
reduce()는 import를 진행해 주어야 하며, 해당 코드는 ((((1+2)+3)+4)+5)로 이해하시면 됩니다.
값들을 더해가는 것을 반복한다고 생각하시면 쉬울 것 같습니다.
[ Filter() ]
마지막으로 filter() 함수 입니다. 말그대로 걸러주는 역할을 하는 함수입니다.
filter()의 첫번째는 함수를 인자로 받고, 두번째로는 리스트를 받습니다.
filter(함수, 리스트)
Array_ = [1, 2, 3, 4, 5, 6, 7, 8]
list(filter(lambda x: x < 5, Array_))
코드를 확인해보면, Array_에서 값을 뽑아 x 에 넣어주고, x < 5 조건에서 참인 결과 값만 list에 넣어주는 역할을 합니다.
결과를 보면 [1,2,3,4]의 결과를 확인할 수 있습니다. 조건은 사용자가 원하는 조건을 만들 수 있습니다. if문에 해당한다고 생각하시면 이해하기 쉬울것 같습니다.
오늘은 lambda 형식에 대해 알아보았습니다. 해당하는 함수들을 기초만 보여드렸는데 조금 더 응용하시면
좋은 코드를 만들 수 있을 것같습니다.!!
'Python > Algorithm' 카테고리의 다른 글
[We-Co] DFS, BFS - Python (0) | 2022.02.15 |
---|---|
[We-Co] 최대 공약수 , 최소 공배수 - Python (0) | 2022.02.15 |
[We-Co] Python 리스트 sort(), sorted() (0) | 2021.08.03 |
[We-Co] 퀵정렬 (Quick sort) (0) | 2021.07.31 |
[We-Co] 리스트 선택정렬 (0) | 2021.07.28 |