나의 공부 일기

Python) 람다함수(Lambda) 본문

파이썬/파이썬 정리

Python) 람다함수(Lambda)

곽병권 2023. 10. 15. 16:10
728x90
람다함수란?

파이썬에서 익명 함수(anonymous function)를 생성하는 방법입니다.

일반 함수에 비해 더 간결한 문법으로 이름이 없는 간단한 함수를 생성하는데 사용됩니다.

람다 함수는 간단한 연산이나 처리를 위한 목적으로 사용됩니다.

컬렉션 자료형 객체가 가지는 함수들에서 많이 활용됩니다.

함수형 프로그래밍 구현에 활용됩니다.

 

람다함수의 문법은 lambda argument: expression 입니다.

여기서 lambda 는 람다 함수를 정의하는 키워드 이고 argument는 입력으로 사용되는 인자들(쉼표로 구분합니다) 입니다.

expression은 인자를 사용해 계산하는 표현식(표현식의 결과가 람다 함수의 반환 값이다.) 입니다.

 

 

람다 함수는 변수로 대입할 수 있고, 함수 호출시 매개 변수로 전달가능(함수형 프로그래밍 개념)합니다.

람다 함수의 예시를 보여드리겠습니다.

add = lambda x ,y :x + y
result = (add(1 ,2))
print(result)

이런식으로 특정 규칙이 있는 함수를 변수에 대입한다고 볼 수 있습니다.

 

 

def universal_calc(a, b, func=None):
    if not func:
        return -1
    return func(a, b)


def add(a, b): return a + b


ret1 = universal_calc(1, 2, func=add)
ret2 = universal_calc(1, 2, func=lambda a, b: a*b)


print(ret1)
print(ret2)

이건 람다 함수를 함수의 인자로 받아서 동작하는 코드입니다.

이런식으로 그냥 일반 함수에서도 효과가 아주 좋은것을 볼 수 있습니다.

 

 

람다를 이용하여 리스트 내에 있는 수들을 변경시킬 수도 있습니다.

예제 드리겠습니다 한번 풀어보세요~

 

문제. 주어진 리스트를 람다 함수를 이용하여 리스트 내의 변수들을 거듭제곱 하세요.

lst = [1, 2, 3, 4, 5]

lst = [1,2,3,4,5]
result_lst = list(map(lambda x : x**2, lst))

print(result_lst)
# map 함수는 map(function, iterable) 이런 형식이고 첫번째 인수로 함수를 받으며 , 두번째 인수로 반복 가능한 객체를 받습니다.
# 이 함수는 주어진 함수를 객체의 각 요소에 적용하여 새로운 객체를 반환합니다.

# 따라서 map(lambda x : x**2, lst) 는 lst의 각 요소를 제곱한 값을 생성하는 객체를 반환합니다.
# 그러이 이 함수는 map 함수의 결과로 이루어져있으므로. 직접 리스트로 사용할 수 없습니다.
# 따라서 list() 라는 리스트로 만들어주는 함수를 이용해 결과값을 list에 담아 최종 결과 값을 담을 변수명인 result_lst에 넣습니다.

정답과 해설입니다.

 

 

 


람다 함수는 여기까지 간단하게 정리 해 보았습니다. 추가적인 질문은 남겨주시면 답변해드릴게요~

728x90