Python/기초문법

[기초문법] lambda 함수 : map, filter

gangee 2023. 9. 3. 15:54

목차

    728x90
    반응형

    lambda 함수 특징

    • 함수를 간편하게 작성할 수 있어서 다른 함수의 인수로 넣을 때 주로 사용
    • 람다 표현식은 변수를 할당하지 않고 그 자체를 바로 호출할 수 있음
    • 람다 표현식 안에서는 새 변수를 만들 수 없음

    람다 표현식으로 익명함수 만드는 방법

    1. 기본 형식

    • lambda 매개변수 : 표현식
    def solution(x, y):
        return x + y
    
     print(solution(1, 2))   # 1+2 = 3
    
     (lambda x, y: x + y)(1, 3)   # 1+3 = 4
    
    ----------------------------
    
    > 3
    > 4

    1-1. 식 자체 호출

    • (lambda 매개변수 : 식)(인수)
    (lambda x: x + 10)(1)
    
    -------------------------
    
    > 11

    1-2. 표현식 안에 변수를 만든 경우

    (lambda x: y = 10; x + y)(1)  # 오류 발생
    
    y = 10
    (lambda x: x + y)(1)   # 오류가 발생하지 않는 코드
    
    -------------------------------------
    
    > SyntaxError: invalid syntax
    > 11

    2. map()

    • map(함수, 리스트)
    list(map(lambda x : x**2, range(5)))
    list(map(lambda x : x + 10, [1, 2, 3]))
    
    --------------------------------------------
    
    > [0, 1, 4, 9, 16]
    > [11, 12, 13]

    2-1. 표현식을 인수로 사용

    def solution(x):
        return x + 10
    
    list(map(solution, [1, 2, 3]))
    
    --------------------------------------------
    
    > [11, 12, 13]

    3. filter()

    • filter(함수, 리스트)
    list(filter(lambda x: x < 5, range(10)))
    
    --------------------------------------------
    
    > [0, 1, 2, 3, 4]
    728x90
    반응형