Python Lambda함수 정리

람다(Lambda)란?

  • 함수를 생성할 때 사용하는 예약어 (= def)
  • 간결함 함수를 만들 때 사용
  • run time에 생성하여 사용
  • 예약어를 사용할 경우 return 명령어가 없어도 반환
  • 예약어를 사용하지 않을 경우 재사용이 불가능

사용법

lambda 매개변수1, 매개변수2, … : 표현식

쉬운 예

두개의 인수 더한 값을 돌려주는 함수

  • 예약어 사용 O
>>>add = labmda a, b: a+b 
>>>result = add(3, 4)
>>>print(result)
  • 예약어 사용 X
x = lambda a, b: a + b //a = 1, b = 2
print(x)
3

if 활용

score = [60, 79, 88, 56, 90]
result = list(map(lambda x : ‘pass’ if x>=60 else ‘fail’, score)) *맵에 대한 설명은 뒤에
print(result)
[‘pass’, ‘pass’, ‘pass’, ‘fail’, ‘pass’]

같이 사용할 함수들( map, filter, reduce)

  • map()함수
    map()은 두개의 인수를 가짐 map(함수, 반환할 객체)
    함수를 객체의 모든 요소에 적용해 변경시키고 변경된 값을 다시 객체에 반환한다.
    **python 3에서 map은 generator형으로 반환되므로 list()로 변환시켜줘야함
  • map() 예시

두 리스트의 합 구하기

a = [2, 4, 6, 8]
b = [1, 3, 5, 7]
result(map(lambda x, y : x + y, a, b))
print(result)
[3, 7, 11, 15]
  • filter()함수
    filter()의 형식은 map과 같고, 각각의 요소에 대해 Boolean값을 반환
    Boolean값이 False 일 경우 요소 제거
    **python 3에서 filter는 generator형으로 반환되므로 list()로 변환시켜줘야함
  • filter()의 예
a = [1, 2, 3, 4, 5, 6]
result = list((filter(lambda x : x % 2 == 0, a)))
print(result)
[2, 4, 6]
  • reduce()함수

reduce는 내장함수가 아니기 때문에 import 시켜야 함 from functools import reduce
reduce()의 형식은 reduce(함수, 객체)이며 리스트의 요소가 하나만 남을때까지 반복하게 됨

reduce()의 예

a = [1, 2, 3, 4]
result = reduce(lambda x, y : x + y, a))
print(result)
15 // (((1 + 2) + 3) + 4)

Leave a Comment

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다