Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python Lambda 함수:소개

Python Lambda 함수는 한 줄의 익명 함수입니다. Python의 람다 식은 목록 필터링, 문자열 케이스 변환 또는 숫자 곱하기와 같이 이름이 필요하지 않은 한 줄 함수에 유용합니다.


유사한 작업을 여러 번 수행하는 프로그램을 작성할 때 작업 작동 방식을 변경해야 하는 경우 모든 인스턴스를 업데이트해야 하므로 코드를 반복하는 것은 비현실적입니다. 코드베이스가 클수록 이러한 변경을 수행하는 데 더 오랜 시간이 걸립니다.

기능이 유용할 때입니다. Python에는 빠른 함수를 선언할 수 있는 익명 함수라는 특수한 유형의 함수가 있습니다. 바로 람다 식입니다.

이 가이드에서는 Python에서 람다 함수를 사용하여 반복적인 프로세스를 자동화하는 방법에 대해 설명합니다. 또한 작동 중인 람다 함수의 두 가지 예를 제공하므로 직접 작성하는 데 필요한 모든 자료를 얻을 수 있습니다.

함수란 무엇입니까?

프로그래밍에서 함수는 특정 작업을 수행하는 코드 블록입니다.

코더가 함수를 사용하는 한 가지 큰 이유는 코드의 반복을 줄이는 데 도움이 되기 때문입니다. 프로세스를 함수로 묶으면 프로그램의 어느 곳에서나 호출할 수 있습니다. 코드를 여러 번 반복할 필요가 없습니다.

이것은 또한 개발자가 더 유지 관리 가능한 코드를 작성하는 데 도움이 됩니다. 해당 프로세스를 변경해야 하는 경우 함수를 수정하기만 하면 됩니다. 프로그램에서 방금 복사하여 붙여넣은 여러 줄의 코드를 변경할 필요가 없습니다.

다음은 Python의 함수 예입니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

def say_hello(name):
	print("Hello there, " + name)

say_hello("Arthur")

이 코드를 실행하면 다음이 반환됩니다. 안녕하세요. Arthur입니다.

이러한 함수는 유용하지만 문자열 목록의 모든 문자열을 소문자로 만드는 것과 같은 간단한 작업을 수행하려는 경우 함수를 작성하는 것은 매우 장황합니다. 코드가 작동하려면 새 함수에 이름을 할당해야 합니다. 람다 함수가 필요한 이유입니다.

람다 함수란 무엇입니까?

람다 함수는 이름 없이 정의되는 함수 유형입니다. 이러한 함수는 이름이 필요하지 않기 때문에 익명 함수라고도 합니다. 이전의 함수는 이름이 sayHello이고 "def"를 사용하여 정의되었지만 람다 함수는 이름이 필요하지 않으며 "lambda"를 사용하여 정의됩니다.

람다 함수를 사용하는 주요 이점은 한 줄에 작성할 수 있다는 것입니다. 따라서 여러 번 수행하려는 빠른 프로세스가 있는 경우 람다 함수가 유용합니다. 다음은 람다 함수가 도움이 될 수 있는 몇 가지 예입니다.

  • 숫자 곱하기
  • 문자열을 대문자 또는 소문자로 변환
  • 목록 필터링

다음은 Python에서 람다 함수를 만드는 구문입니다.

name = lambda arguments: expression

람다 함수로 지정할 수 있는 인수의 수에는 제한이 없습니다. Python에서 람다 함수가 작동하는 방식을 설명하기 위해 예제를 살펴보겠습니다. 숫자에 7을 곱한다고 가정해 보겠습니다. 그렇게 하려면 다음 기능을 사용할 수 있습니다.

def multiply_by_seven(number):
return number * 7

print(multiply_by_seven(2))

이 코드를 실행하면 다음이 반환됩니다. 14.

이 코드는 작동하지만 가능한 한 효율적이지 않습니다. 함수의 이름과 인수를 정의하는 전체 코드 줄과 값을 계산하고 반환하는 또 다른 코드 줄을 사용합니다. 함수를 더 효율적으로 만들기 위해 람다 함수를 사용할 수 있습니다.

다음은 위와 동일한 작업을 수행하는 람다 함수입니다.

multiply_by_seven = lambda n: n * 7

print(multiply_by_seven(2))

코드는 다음을 반환합니다. 14. 보시다시피 함수의 출력은 동일합니다. 차이점은 일반 함수 대신 람다 함수를 사용했다는 것입니다. 이 경우:

  • 람다 키워드는 람다 함수를 선언하고 있음을 나타냅니다.
  • n 함수에 대한 인수입니다.
  • n * 7 람다 함수에 지정된 단일 표현식입니다.

람다 함수는 언제 사용됩니까?

Lambda 함수는 Python에서 광범위하게 사용됩니다. 마지막 예에서 람다 함수를 사용하여 두 숫자를 곱하는 방법을 보여주었습니다. 그러나 알고 있어야 하는 몇 가지 일반적인 사용 사례가 있습니다.

종종 람다 함수는 reduce()와 같은 내장 함수와 함께 사용됩니다. 함수, map() 함수 또는 filter() 함수. 람다 함수는 반복적인 작업을 수행하기 위해 목록 이해와 함께 사용되기도 합니다.

우리가 제과점을 소유하고 있고 우리가 판매하는 모든 구운 제품 목록을 기반으로 판매하는 모든 파이 목록을 만들고 싶다고 가정해 보겠습니다. 다음 코드를 사용하여 그렇게 할 수 있습니다.

baked_goods = ['Blondie', 'Chocolate Chip Cookie', 'Apple Pie', 'Pecan Pie', 'Blackberry Pie', 'Scone']

pies = filter(lambda pie: "Pie" in pie, baked_goods)

print(list(pies))

코드 반환:

['Apple Pie', 'Pecan Pie', 'Blackberry Pie']

이것이 어떻게 작동했는지 분석해 보겠습니다. 코드의 첫 번째 줄에서 구운 식품 목록을 선언했습니다. 그런 다음 filter()를 사용했습니다. "Pie"라는 단어가 포함된 모든 구운 식품을 필터링하는 기능입니다. filter() 함수를 사용하여 "baked_goods" 목록의 모든 항목을 반복하고 특정 기준을 충족하지 않는 항목을 필터링할 수 있었습니다.

각 문자열에 "Pie"가 포함되어 있는지 확인하고 해당 문자열에 "Pie"가 포함된 경우에만 문자열을 반환하는 람다 함수를 정의하여 이를 수행했습니다. 이 경우 람다 함수는 다음과 같습니다.

lambda pie: "Pie" in pie

이 예제에서 Python 람다 함수에는 이름이 필요하지 않음을 알 수 있습니다. 기존 함수와 달리 인라인으로 존재할 수 있습니다. 항목이 기준을 충족하면 Lambda 표현식이 true를 반환합니다. 그렇지 않으면 값이 반환되지 않습니다.

마지막으로 변수 "pies"를 목록으로 변환하고 콘솔에 출력합니다. filter() 사용자 정의 필터 개체를 반환하므로 파이를 보려면 list()를 사용하여 변환해야 합니다. .

결론

익명 함수라고도 하는 Lambda 함수를 사용하면 이름 없이 함수를 정의할 수 있습니다. 코드에서 작업을 여러 번 수행해야 하는 경우에 유용합니다.

예를 들어 숫자에 다른 숫자를 곱해야 하는 경우 람다 함수를 사용할 수 있습니다. 또는 람다 함수를 사용하여 목록의 항목을 필터링할 수 있습니다.