Lambda 함수 란 무엇이며 어떻게 사용합니까?



일반 함수와 람다 함수의 차이점 및 filter (), map (), reduce ()에서 사용되는 방법과 함께 Python 람다 함수를 배웁니다.

이름은 엔티티를 참조하거나 주소를 지정하는 데 사용되는 규칙입니다. 우리 주변의 거의 모든 것에는 이름이 있습니다. 프로그래밍의 세계도 이에 따라 진행됩니다. 그러나 모든 이름을 지정하는 것이 필수입니까? 아니면 그냥 '익명'인 것을 가질 수 있습니까? 대답은 그렇습니다. ' 실제로 이름이없는 익명 함수라고도하는 Lambda 함수를 제공합니다. 따라서 다음 순서로 Python의 '익명 신비'에 대해 알아 보도록하겠습니다.

그럼 시작하겠습니다 :)





Python Lambda 함수를 사용하는 이유는 무엇입니까?


익명 함수의 주요 목적은 한 번만 기능이 필요할 때 나타납니다. 필요할 때마다 만들 수 있습니다. 이러한 이유로 Python Lambda 함수는 filter (), map () 등과 같은 미리 정의 된 다른 함수와 함께 사용되는 일회용 함수라고도합니다. 이러한 함수는 다음과 비교할 때 코드 줄 수를 줄이는 데 도움이됩니다. 표준 .

이를 증명하기 위해 계속해서 Python Lambda 함수에 대해 알아 보겠습니다.



Python Lambda 함수 란 무엇입니까?


Python Lambda 함수는 이름이없는 함수입니다. 익명 또는 이름없는 함수라고도합니다. ‘람다’라는 단어는 이름이 아니라 키워드입니다. 이 키워드는 뒤에 오는 함수가 익명임을 지정합니다.

이제 이러한 익명 함수가 무엇을 참조하는지 알고 있으므로 Python Lambda 함수를 작성하는 방법을 살펴 보겠습니다.

Python에서 Lambda 함수를 작성하는 방법은 무엇입니까?

Lambda 함수는 lambda 연산자를 사용하여 생성되며 구문은 다음과 같습니다.



통사론:

람다 인수 : 표현식

파이썬 람다 함수 여러 인수를 가질 수 있지만 하나의 표현. 입력 또는 인수는 0에서 시작하여 제한까지 올라갈 수 있습니다. 다른 함수와 마찬가지로 입력이없는 람다 함수를 사용하는 것이 좋습니다. 따라서 다음 형식 중 하나로 람다 함수를 사용할 수 있습니다.

예:

람다 : '목적 지정'

여기서 람다 함수는 인수를 취하지 않습니다.

예:

람다하나:“사용 지정하나'

여기에서 람다는하나.

자바에서 로거 파일을 만드는 방법

마찬가지로 람다를 가질 수 있습니다.하나, ~2, ~..에.

이를 증명하기 위해 몇 가지 예를 들어 보겠습니다.

예 1 :

a = 람다 x : x * x print (a (3))

산출: 9

예 2 :

a = 람다 x, y : x * y print (a (3,7))

산출: 이십 일

보시다시피 여기에 두 가지 예를 들었습니다. 첫 번째 예제는 하나의 표현식으로 람다 함수를 사용하는 반면 두 번째 예제에는 두 개의 인수가 전달됩니다. 두 함수 모두 뒤에 인수가 오는 단일 표현식이 있습니다. 따라서 여러 줄식이 필요한 곳에 람다 함수를 사용할 수 없습니다.

반면에 일반 파이썬 함수는 함수 정의에서 여러 문을 사용할 수 있습니다.

익명 함수는 코드 크기를 어떻게 줄입니까?

필요한 코드의 양을 비교하기 전에 먼저 구문을 적어 보겠습니다. 앞서 설명한 람다 함수와 비교해보세요.

Python의 모든 일반 함수는 데프 다음과 같이 키워드 :

통사론:

def function_name (매개 변수) :
명세서

보시다시피 람다 함수에 필요한 코드의 양은 일반 함수보다 훨씬 적습니다.

이제 일반 함수를 사용하여 앞서 살펴본 예제를 다시 작성해 보겠습니다.

예:

def my_func (x) : return x * x print (my_func (3))

산출: 9

보시다시피 위의 예에서 3의 제곱 값을 평가하려면 my_func 내에 return 문이 필요합니다. 반대로 람다 함수는이 return 문을 사용하지 않지만 익명 함수의 본문입니다. 콜론 기호 뒤에 함수 자체와 같은 줄에 기록됩니다. 따라서 함수의 크기는 my_func의 크기보다 작습니다.

그러나 위의 예에서 람다 함수는 다른 ㅏ. 이것은 이러한 함수가 이름이 없기 때문에 수행되므로 일부 이름을 호출해야합니다. 그러나이 사실은 실제로 호출하기 위해 다른 이름을 할당해야 할 때 그러한 이름없는 함수를 사용하는 이유에 대해 혼란스러워 보일 수 있습니다. 물론 내 기능에 이름 a를 할당 한 후에는 더 이상 이름이없는 상태로 유지되지 않습니다! 권리?

합법적 인 질문이지만 요점은 이것이 이러한 익명 함수를 사용하는 올바른 방법이 아니라는 것입니다.

익명 함수는 다른 곳에서 가장 잘 사용됩니다. 고차 함수 일부 함수를 인수로 사용하거나 함수를 출력으로 반환합니다. 이를 입증하기 위해 이제 다음 주제로 넘어가겠습니다.

사용자 정의 함수 내의 Python Lambda 함수 :

위에서 언급했듯이 람다 함수는 다른 함수 내에서 가장 좋은 이점을 표시하는 데 사용됩니다.

다음 예제는 하나의 인수 x를 취하는 일반적인 파이썬 함수 인 new_func로 구성됩니다. 이 인수는 람다 함수를 통해 제공되는 알 수없는 인수 y에 추가됩니다.

예:

def new_func (x) : return (lambda y : x + y) t = new_func (3) u = new_func (2) print (t (3)) print (u (3))

산출:

6
5
보시다시피 위의 예에서 new_func ()를 사용할 때마다 new_func 내에 존재하는 람다 함수가 호출됩니다. 매번 별도의 값을 인수에 전달할 수 있습니다.

이제 고차 함수 내에서 익명 함수를 사용하는 방법을 보았으므로 이제 filter (), map () 및 reduce () 메서드 내에서 가장 널리 사용되는 용도 중 하나를 이해하겠습니다.

filter (), map () 및 reduce () 내에서 익명 함수를 사용하는 방법 :

내 익명 기능 필터():

Java Tutorial의 데이터 구조 및 알고리즘

필터():

filter () 메서드는 인수로 전달 된 다른 함수의 도움으로 주어진 이터 러블 (목록, 집합 등)을 필터링하여 모든 요소가 참 또는 거짓인지 테스트하는 데 사용됩니다.

이 함수의 구문은 다음과 같습니다.

통사론:

필터 (함수, 반복 가능)

이제 다음 예를 고려하십시오.

예:

PHP는 객체를 배열로 변환
my_list = [2,3,4,5,6,7,8] new_list = list (filter (lambda a : (a / 3 == 2), my_list)) print (new_list)

산출: [6]

여기서 my_list는 필터 함수에 전달되는 반복 가능한 값 목록입니다. 이 함수는 람다 함수를 사용하여 목록에 3으로 나눌 때 2와 같은 값이 있는지 확인합니다. 출력은 익명 함수 내에있는 표현식을 충족하는 목록으로 구성됩니다.

지도():

Python의 map () 함수는 주어진 함수를 모든 이터 러블에 적용하고 새 목록을 반환하는 함수입니다.

통사론:

map (함수, 반복 가능)

map () 함수 내에서 람다 함수를 사용하는 방법을 보여주는 예제를 살펴 보겠습니다.

예:

my_list = [2,3,4,5,6,7,8] new_list = list (map (lambda a : (a / 3! = 2), li)) print (new_list)

산출:

[참, 참, 참, 참, 거짓, 참, 참]

위의 출력은 iterables의 값이 3으로 나눌 때 2가 아닐 때마다 반환 된 결과가 True 여야 함을 보여줍니다. 따라서 my_list의 모든 요소에 대해 조건이 False로 변경 될 때 값 6을 제외하고 true를 반환합니다.

줄이다():

reduce () 함수는 매개 변수로 전달되고 마지막으로 단일 값을 리턴하는 요소 목록에 다른 함수를 적용하는 데 사용됩니다.

이 함수의 구문은 다음과 같습니다.

통사론:

감소 (함수, 순서)

예:

functools 가져 오기에서 감소 감소 (lambda a, b : a + b, [23,21,45,98])

위의 예는 다음 이미지에 나와 있습니다.

파이썬 감소 람다 -edureka

산출: 187

출력은 목록의 모든 요소가 지속적으로 추가 최종 결과를 반환합니다.

이것으로 'Python Lambda'에 대한이 기사를 마칩니다. 여러분과 공유 된 모든 내용이 명확하기를 바랍니다. 가능한 한 많이 연습하고 경험을 되 돌리십시오.

질문이 있으십니까? 이 'Python Lambda'블로그의 댓글 섹션에 언급 해 주시면 가능한 한 빨리 연락 드리겠습니다.

다양한 응용 프로그램과 함께 Python에 대한 심층적 인 지식을 얻으려면 라이브에 등록 할 수 있습니다. 연중 무휴 지원 및 평생 액세스.