Programing/Python
#함수 이해 및 활용 - 2
CouqueD'asse
2022. 6. 29. 13:15
Lambda 함수
- 단일문으로 표현되는 익명함수
- 익명함수란 이름이 없는 구현체만 존재하는 간단한 함수를 의미
- 코드 상에서 한번만 사용되는 기능이 있을 때, 굳이 함수로 만들지 않고 1회성으로 만들어서 쓸 때 사용.
add2 = lambda x, y : x + y
add2(5, 10)
15
strings = ['bob', 'charles', 'alexander', 'teddy']
strings.sort(key = lambda s:len(s))
print(strings)
['bob', 'teddy', 'charles', 'alexander']
filter, map, reduce
- lambda가 유용하게 사용되는 3가지 대표적 함수
- 함수형 프로그래밍의 기본 요소이기도 함
- filter : 특정 조건을 만족하는 요소만 남기고 필터링
- map : 각 원소를 주어진 수식에 따라 변형하여 새로운 리스트를 반환
- reduce : 차례대로 앞 2개의 원소를 가지고 연산. 연산의 결과가 또 다음 연산의 입력으로 진행됨. 따라서 마지막까지 진행되면 최종 출력은 한개의 값만 남게 됨
nums = [1, 2, 3, 6, 8, 9]
# filter
list(filter(lambda n:n%2==0, nums))
[2, 6, 8]
# map
list(map(lambda n:n**2, nums))
[1, 4, 9, 36, 64, 81]
# reduce
import functools
a = [1, 3, 5, 8]
functools.reduce(lambda x, y:x+y, a)
17