Python에서 Lambda 함수를 사용하는 5가지 방법
인용문
Lambda 함수(익명 함수라고도 부른다)는 함수식 프로그래밍의 핵심 개념 중의 하나다.
다중 프로그래밍 범례를 지원하는 Python도 lambda 함수를 정의하는 간단한 방법을 제공했다.
Python으로 lambda 함수를 작성하는 템플릿은 다음과 같습니다.
lambda arguments : expression
여기에는 다음 세 가지 섹션이 포함됩니다.• 람다 키워드
/함수가 수신할 매개변수
/결과 함수 반환값의 표현식
그것의 단순성 때문에, lambda 함수는 우리의Python 코드를 일부 사용 장면에서 더욱 우아하게 할 수 있다.이 글은 Python에서 lambda 함수의 5가지 흔한 용법을 보여주고 재미있는 예로 설명할 것이다.
1. 이름 지정 사용
만약 우리가 간단한 함수만 필요로 한다면, lambda는 좋은 선택이다. 왜냐하면 이것은 함수를 정의하는 더욱 간단한 방법으로 간주될 수 있기 때문이다.따라서 우리는 그것에게 이름을 주고 일반 함수처럼 사용할 수 있다.
lambda_add_ten = lambda x: x + 10
print(lambda_add_ten(5))
# 15
def add_ten(x):
return x + 10
print(add_ten(5))
# 15
위의 예에서 보듯이add_ten() 및 lambda_add_ten () 방법의 결과는 같지만 lambda 함수는 우리의 코드를 더욱 짧고 명확하게 할 수 있다.2. 고급 함수와 결합
만약 우리가 lambda 함수를 맵 (), filter (), Reduce () 등 고급 함수와 함께 사용할 수 있다면 프로그램은 더욱 우아해질 것이다.
다음 질문을 살펴보겠습니다.
목록을 아래와 같이 드리겠습니다. 그중의 모든 홀수를 인쇄할 수 있습니까?
numbers = [1, 12, 37, 43, 51, 62, 83, 43, 90, 2020]
이 문제는 보기에는 매우 간단하지만, 초급과 고급Python 개발자를 구분하기에 충분하다.초보 프로그래머는 다음과 같은 코드를 작성할 수 있습니다.
odd_number = []
for n in numbers:
if n % 2 == 1:
odd_number.append(n)
print(odd_number)
# [1, 37, 43, 51, 83, 43]
그것은 정상적으로 작동하여 아무런 문제가 없다.그러나 고급 Python 프로그래머는 코드 한 줄만 있으면 같은 일을 할 수 있다.
print(list(filter(lambda x: x % 2 == 1, numbers)))
# [1, 37, 43, 51, 83, 43]
그것은 보기에 더욱 우아하지 않습니까?참고로 위의 해결 방안은 lambda 함수를 어떻게 사용하는지 보여주기 위해서입니다.물론 목록 해석과 같은 다른 단일 해결 방안도 있다.
odd_numbers = [i for i in numbers if i % 2 == 1]
실제로 많은 상황에서 목록 내포 함수는 고급 함수와lambda 함수의 협업보다 더 읽을 수 있다.3. "key" 매개 변수 부여
일부 내장 방법은 관건적인 매개 변수를 가지고 있는데, 이런 매개 변수들은 우리에게 더욱 많은 유연성을 제공한다.
예를 들어sorted () 또는sort () 방법을 사용하여Python의 교체를 정렬할 때 관건적인 매개 변수는 교체된 두 요소를 어떻게 비교하는지 결정합니다.
여기도 람다 함수의 공연 시간이다.
leaders = ["Warren Buffett", "Yang Zhou", "Tim Cook", "Elon Musk"]
print(leaders)
# ['Warren Buffett', 'Yang Zhou', 'Tim Cook', 'Elon Musk']
leaders.sort(key=lambda x: len(x))
print(leaders)
# ['Tim Cook', 'Yang Zhou', 'Elon Musk', 'Warren Buffett']
위에서 말한 바와 같이, 만약에 우리가 모든 이름의 길이에 따라leaders 목록을 정렬한다면, 간단한 방법은 키 매개 변수에lambda 함수를 전달하는 것이다.또 다른 흔히 볼 수 있는 사용 장면은 사전의 키나 값에 따라 정렬하는 것이다.
leaders = {4: "Yang Zhou", 2: "Elon Musk", 3: "Tim Cook", 1: "Warren Buffett"}
print(leaders)
# {4: 'Yang Zhou', 2: 'Elon Musk', 3: 'Tim Cook', 1: 'Warren Buffett'}
leaders = dict(sorted(leaders.items(), key=lambda x: x[0]))
print(leaders)
# {1: 'Warren Buffett', 2: 'Elon Musk', 3: 'Tim Cook', 4: 'Yang Zhou'}
4. 즉시 호출
지금 호출되는 함수 표현식(IIFE)은 JavaScript의 습관적인 사용법입니다.Python의 lambda 함수도 이 기교를 지원합니다.다음과 같이 lambda 함수를 즉시 실행할 수 있습니다.
>>> (lambda x,y:x*y)(2,3)
6
그러나 가독성과 유지보수성을 고려하여Python의 상호작용 해석기에서만 이 기교를 사용하는 것이 좋다.그나저나 파이썬의 밑줄 치는 기술에 익숙하면 다음과 같은 방법을 사용할 수 있다.
>>> lambda x,y:x*y
<function <lambda> at 0x7fc319102d30>
>>> _(2,3)
6
5. 패키지에서 사용
패키지를 닫는 것은 기능이 강한 함수식 프로그래밍 특성으로Python에서도 사용할 수 있다.이것은 플러그인 함수에 관한 것이기 때문에, 우리는 lambda 함수를 사용하여 프로그램을 더욱 명확하게 할 수 있다.
다음은 클립을 사용하는 예입니다.
def outer_func():
leader = "Yang Zhou"
def print_leader(location=""):
return leader + " in the " + location
return print_leader
Lead = outer_func()("UK")
print(Lead)
# Yang Zhou in the UK
우리는 어떻게 lambda 함수를 사용하여 위의 코드를 간소화해야 합니까?
def outer_func():
leader = "Yang Zhou"
return lambda location="": leader + " in the " + location
Lead = outer_func()("UK")
print(Lead)
# Yang Zhou in the UK
위의 예에서 보듯이 우리가 플러그인 함수를 사용할 때lambda 함수는 우리가 더욱 읽기 쉽고 명확한 코드를 작성하는 데 도움을 줄 수 있다.총결산
Python의 lambda 함수는 우리에게 더 많은 유연성과 방법 설계 옵션을 제공합니다.한 마디로 하면, 우리는 과도한 사용이 아니라 정확하게 사용할 수 있도록 상기 다섯 가지 흔한 용법을 익혀야 한다.
Python에서 Lambda 함수를 사용하는 5가지 용법에 대한 이 글을 소개합니다. 더 많은 관련python에서 Lambda 함수를 사용하는 내용은 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.