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