Python Lambda 함수 이해를 위한 초보자 안내서

Python Lambda 함수 이해를 위한 초보자 안내서

Python의 람다는 알아야 할 가장 유용하고 중요하며 흥미로운 기능 중 하나입니다. 불행히도, 그들은 또한 오해하기 쉽고 잘못되기 쉽습니다.





이 기사에서는 이러한 신비한 기능, 사용 방법 및 유용한 이유에 대해 알아야 할 모든 것을 설명합니다.





이러한 실용적인 예를 살펴보기 전에 Python 가상 환경을 설정할 수 있습니다. 그렇게 하고 싶지 않다면 최소한 다음 예제를 시도해야 합니다. 대화형 온라인 Python 셸 사용 .





Python에서 람다란 무엇입니까?

람다는 단순히 파이썬에서 함수를 정의하는 방법입니다. 그들은 때때로 '람다 연산자' 또는 '람다 함수'로 알려져 있습니다.

이전에 Python을 사용한 적이 있다면 아마도 다음을 사용하여 함수를 정의했을 것입니다. 데프 키워드이며 지금까지 잘 작동했습니다. 그렇다면 동일한 작업을 수행하는 다른 방법이 있는 이유는 무엇입니까?



차이점은 람다 함수가 익명이라는 것입니다. 즉, 이름을 지정할 필요가 없는 기능입니다. '실제' 함수가 너무 크고 부피가 큰 경우 작은 일회성 함수를 만드는 데 사용됩니다.

Lambda는 변수에 할당할 수 있는 함수 객체를 반환합니다. 람다는 여러 개의 인수를 가질 수 있지만 하나의 표현식만 가질 수 있습니다. 람다 내에서 다른 함수를 호출할 수 없습니다.





람다 함수의 가장 일반적인 용도는 완전한 일반 함수를 작성하는 것이 과도할 수 있는 간단한 한 줄 함수가 필요한 코드에서입니다. 이것은 아래의 'Map, Filter, Reduce는 어떻습니까?'에서 자세히 다룹니다.

Python에서 Lambda를 사용하는 방법

람다 함수를 보기 전에 '전통적인' 방식으로 정의된 초 기본 함수를 살펴보겠습니다.





def add_five(number):
return number + 5

print(add_five(number=4))

이 함수는 매우 기본적이지만 람다를 설명하는 역할을 합니다. 당신의 것은 이것보다 더 복잡할 수 있습니다. 이 함수는 를 통해 전달된 임의의 숫자에 5를 더합니다. 숫자 매개변수.

다음은 람다 함수로 보이는 방법입니다.

add_five = lambda number: number + 5

print(add_five(number=4))

사용하는 것보다 데프 , 단어 람다 사용. 대괄호는 필요하지 않지만 다음 단어는 람다 키워드는 매개변수로 생성됩니다. 콜론은 매개변수와 표현식을 구분하는 데 사용됩니다. 이 경우 표현식은 숫자 + 5 .

사용할 필요가 없습니다 반품 키워드 --- 람다가 자동으로 이 작업을 수행합니다.

두 개의 인수로 람다 함수를 만드는 방법은 다음과 같습니다.

네트워크에서 대역폭을 사용하고 있는지 확인하는 방법
add_numbers_and_five = lambda number1, number2: number1 + number2 + 5

print(add_numbers_and_five(number1=4, number2=3))

람다의 요점에 대해 여전히 확신이 없으면 다음 섹션에서 자세히 살펴보고 빛을 보는 데 도움을 줄 것입니다.

Map, Filter, Reduce가 있는 Python Lambdas

Python 핵심 라이브러리에는 다음과 같은 세 가지 메서드가 있습니다. 지도 , 줄이다 , 그리고 필터 . 이러한 메서드는 람다 함수를 사용하는 가장 좋은 이유일 수 있습니다.

NS 지도 함수에는 함수와 목록의 두 가지 인수가 필요합니다. 이 함수를 가져와 목록의 모든 요소에 적용하고 수정된 요소 목록을 지도 객체로 반환합니다. NS 목록 함수는 결과 맵 객체를 다시 목록으로 변환하는 데 사용됩니다.

람다 없이 맵을 사용하는 방법은 다음과 같습니다.

list1 = [2, 4, 6, 8]
print(list1)
def add_five(number):
return number + 5

new_list = list(map(add_five, list1))
print(new_list)

이 지도 기능은 매우 편리하지만 더 좋을 수 있습니다. NS add_five 함수는 인수로 전달되지만 map을 사용할 때마다 함수를 만들고 싶지 않다면 어떻게 될까요? 대신 람다를 사용할 수 있습니다!

다음은 함수를 람다로 대체한 동일한 코드의 모습입니다.

YouTube에서 구독자를 어떻게 보나요
list1 = [2, 4, 6, 8]
print(list1)

new_list = list(map(lambda x: x + 5, list1))
print(new_list)

보시다시피, 전체 add_five 기능이 더 이상 필요하지 않습니다. 대신 람다 함수를 사용하여 깔끔하게 유지합니다.

이랑 필터 기능, 프로세스는 거의 동일합니다. 필터 함수를 가져와 목록의 모든 요소에 적용하고 함수가 True를 반환하도록 한 요소만 포함하는 새 목록을 만들었습니다.

첫째, 람다 없이:

numbers = [1, 4, 5, 10, 20, 30]
print(numbers)
def greater_than_ten_func(number):
if number > 10:
return True
else:
return False
new_numbers = list(filter(greater_than_ten_func, numbers))

print(new_numbers)

이 코드에는 문제가 없지만 조금 길어집니다. 람다가 제거할 수 있는 줄 수를 봅시다.

numbers = [1, 4, 5, 10, 20, 30]
print(numbers)
new_numbers = list(filter(lambda x: x > 10, numbers))
print(new_numbers)

람다 함수는 전체의 필요성을 대체했습니다. Greater_than_ten_func ! 그리고 그것은 5개의 간단한 단어로 이루어집니다. 이것이 람다가 강력한 이유입니다. 간단한 작업의 혼란을 줄입니다.

마지막으로 살펴보겠습니다. 줄이다 . Reduce는 또 다른 멋진 Python 기능입니다. 목록의 모든 항목에 롤링 계산을 적용합니다. 이것을 사용하여 총계를 집계하거나 모든 숫자를 곱할 수 있습니다.

from functools import reduce
numbers = [10, 20, 30, 40]
print(numbers)
def summer(a, b):
return a + b

result = reduce(summer, numbers)
print(result)

이 예제를 가져와야 합니다. 줄이다 ~로부터 기능 도구 모듈이지만 걱정하지 마십시오. functools 모듈은 Python 핵심 라이브러리의 일부입니다.

이야기는 람다와 매우 유사하므로 함수가 필요하지 않습니다.

from functools import reduce
numbers = [10, 20, 30, 40]
print(numbers)

result = reduce(lambda a, b: a + b, numbers)
print(result)

Python Lambda에서 주의해야 할 사항

이 예제는 Python 핵심 라이브러리에서 map, filter 및 reduce와 함께 람다 함수가 얼마나 쉬운지 보여주었습니다. 그래도 람다 함수가 도움이 되지 않는 몇 가지 용도가 있습니다.

기본 작업 이상의 작업을 수행하거나 다른 메서드를 호출하려는 경우 일반 함수를 사용합니다. 람다는 일회성 익명 함수에 적합하지만 표현식은 하나만 있어야 합니다. 람다가 정규식처럼 보이기 시작하면 전용 메서드로 리팩토링해야 할 때입니다.

더 많은 팁을 확인하려면 Python의 객체 지향 프로그래밍 가이드 Python 초보자를 위한 FAQ 가이드를 확인하세요.

공유하다 공유하다 트위터 이메일 이메일이 진짜인지 가짜인지 확인하는 3가지 방법

다소 의심스러운 이메일을 받은 경우에는 항상 해당 이메일의 진위 여부를 확인하는 것이 가장 좋습니다. 이메일이 진짜인지 확인하는 세 가지 방법이 있습니다.

다음 읽기
관련 항목
  • 프로그램 작성
  • 파이썬
  • 코딩 튜토리얼
저자 소개 조 코번(136건의 출판물)

Joe는 영국 링컨 대학교에서 컴퓨터 공학을 전공했습니다. 그는 전문 소프트웨어 개발자이며 드론을 날리거나 작곡을 하지 않을 때 종종 사진을 찍거나 동영상을 제작하는 모습을 볼 수 있습니다.

조 코번이 참여한 작품 더보기

뉴스레터 구독

기술 팁, 리뷰, 무료 전자책 및 독점 거래에 대한 뉴스레터에 가입하십시오!

구독하려면 여기를 클릭하세요.