[파이썬 입문] 람다 표현식

[파이썬 입문] 람다 표현식

람다 표현식은 일부 형식화된 데이터를 반환하는 익명 함수입니다.

람다 식 구문은 다음과 같습니다.

람다 매개변수: 표현식

  1. double = lambda num : num * 2

  2. concat_first_letter = lambda a, b, c: a[0] + b[0] + c[0]

    concat_first_letter("World", "Wide", "Web")=>WWW

람다 표현식은 한 줄로 작성해야 하므로 한 줄로 작성할 수 있는 짧은 함수에 더 적합합니다.

람다 식에서 조건부 논리를 사용하는 경우 완전한 것을 사용해야 하며 if-else단독으로 사용하면 오류 if가 발생합니다.

func = lambda num: "natural number" if num >= 0 else "negative number"

func(0) # 'natural number'

my_func = lambda num: "natural number" if num >= 0 # SyntaxError: invalid syntax

람다 식을 사용할 때의 장점은 함수를 매개변수로 다른 함수에 전달할 수 있다는 것입니다.

매개변수로서의 람다 표현식

덧셈과 곱셈을 예로 들면 non-lambda를 사용하는 쓰기 방법은 다음과 같습니다.

def add(n1, n2):
    return n1 + n2

def multiply(n1, n2):
    return n1 * n2

def calculator(operation, n1, n2):
    return operation(n1, n2)

calculator(multiply, 10, 20) # 200

calculator(add, 10, 20) # 30

람다 표현식은 다음과 같이 작성됩니다.

def calculator(operation, n1, n2):
    return operation(n1, n2)  # Using the 'operation' argument as a function

calculator(lambda n1, n2: n1 * n2, 10, 20) # 200
calculator(lambda n1, n2: n1 + n2, 10, 20) # 30

람다 식을 사용하면 동일한 결과가 더 간결해지며 이는 람다 식의 원래 의도이기도 합니다.

공식 Python 문서에서 - 람다 표현식에 명령문이 포함될 수 없는 이유는 무엇입니까 ?

기능을 추가하는 다른 언어의 람다 형식과 달리 Python 람다는 함수를 정의하기에 너무 게으른 경우 약식 표기법일 뿐입니다.

Python의 Lambda는 게으르도록 설계되었습니다.

목록에 람다 표현식 적용:

num_list = [0, 1, 2, 3, 4, 5]

list(map(lambda n: n ** 2, num_list)) # [0, 1, 4, 9, 16, 25]

list(filter(lambda n: n > 0, num_list)) # [1, 2, 3, 4, 5]

추천

출처blog.csdn.net/weixin_42938619/article/details/120867959