파이썬/람다 함수

람다 함수

코린이도이 2020. 11. 4. 21:50

람다 함수

  • 리스트 내포, 조건부 표현식 등과 같이 여러 줄의 코드를 간결하게 표현할 수 있도록 도와주는 새로운 함수 정의 방법

  • lambda로 정의할 수 있고, def와 같은 역할

  • 함수의 이름을 정의하지 않고, 일회성으로 간편하게 사용할 때 유용

  • def로 정의할 만큼 복잡하지 않을 때 활용

  • lambda 매개변수1, 매개변수2, ... : 매개변수를 이용한 표현식

  • def 함수와 같이 기본 매개변수, 키워드 매개변수, 가변 매개변수 설정 가능

  • 조건문과 함께 사용 가능

  • map 내장 함수와 함께 활용: 시퀀스 자료형이 지닌 각 요소 값들에 대해 함수에 적용한 요소를 지닌 map 객체를 반환
def func(x):
    return x * x
a = [1, 2, 3, 4, 5]
b = map(func, a)
print(list(b)) # [1,4,9,16,25] 출력됨
  • filter 내장 함수와 함께 활용 (조건에 맞는 값만 출력)

def func(x):
    return x>2

a = [1, 2, 3, 34]
b = []
print(list(filter(func,a))) #[3, 34]가 출력됨
  • 복잡한 객체를 정렬할 때 활용

students = [('영수', 'A', 15),('철수', 'B', 16),('영희','C',10)]
print(sorted(students, key=lamda x: x[1])) #각 튜플의 두번째 원소를 기준으로 정렬됨
  • 문자열 포맷팅과 함께 활용

print((lambda x,y : '{} X {} = {}'.format(x,y,x*y))(3,4))
# 3 X 4 = 12가 출력됨