산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

파이썬 람다 함수 마스터하기: 실용 예제 & 모범 사례

파이썬 람다 함수 마스터하기: 실용 예제 & 모범 사례

람다 함수는 익명 함수라고도 불리며, 작은 일회성 루틴을 한 줄로 작성할 수 있게 해줍니다. map, filter, reduce와 함께 사용할 때 함수형 스타일 코드에서 특히 유용합니다.

람다 함수란 무엇인가?

람다는 def 대신 lambda 키워드로 정의하는 함수입니다. 0개 이상의 매개변수를 받고 단일 표현식의 값을 반환합니다. 본문이 표현식이기 때문에 문장이나 여러 줄을 포함할 수 없습니다.

모든 람다는 세 가지 필수 요소로 구성됩니다:

예를 들어, lambda x, y: x + y는 두 숫자를 더합니다. 익명이지만 변수에 할당하거나 다른 함수에 전달하거나 즉시 호출할 수 있습니다.

람다 작성 방법

공식 문법:

lambda p1, p2, ... : expression

매개변수 주위에 괄호가 없다는 점에 주의하세요. 표현식에는 유효한 파이썬 연산을 모두 사용할 수 있습니다.

예제 1: 간단한 덧셈

adder = lambda x, y: x + y
print(adder(1, 2))  # → 3

예제 2: 람다 객체 검사

string = 'some kind of a useless lambda'
print(lambda string: print(string))  # → <function <lambda> at 0x...>

여기서는 람다가 호출되지 않고, print가 람다가 반환하는 함수 객체를 표시합니다.

예제 3: 즉시 호출 람다 (IIFE)

(lambda x: print(x))('IIFE in action')  # → IIFE in action

정의를 괄호로 감싸고 뒤에 괄호를 추가하면 람다가 즉시 호출됩니다.

예제 4: 람다 vs 일반 함수

# 일반 함수
def printer(arg):
    return print(arg)

# 람다가 함수를 호출
guru(lambda: printer('Lambda call'))  # → Lambda call

두 스니펫 모두 같은 출력을 내지만, 일회성 호출만 필요할 때는 람다 버전이 더 간결합니다.

내장 함수와 람다 함께 사용하기

람다는 고차 함수의 콜백으로 전달될 때 빛을 발합니다. 일반적인 패턴들을 살펴보겠습니다.

파이썬에서 즉시 호출 함수 표현식 (IIFE)

(lambda x: x + x)(2)  # → 4

filter

filter 함수는 조건을 만족하는 요소만 유지합니다.

sequences = [10, 2, 8, 7, 5, 4, 3, 11, 0, 1]
filtered = filter(lambda x: x > 4, sequences)
print(list(filtered))  # → [10, 8, 7, 5, 11]

map

map 함수는 각 요소를 변환합니다.

sequences = [10, 2, 8, 7, 5, 4, 3, 11, 0, 1]
squared = map(lambda x: x * x, sequences)
print(list(squared))  # → [100, 4, 64, 49, 25, 16, 9, 121, 0, 1]

reduce

reduce를 사용해 시퀀스에서 단일 값을 누적합니다.

from functools import reduce
sequences = [1, 2, 3, 4, 5]
product = reduce(lambda x, y: x * y, sequences)
print(product)  # → 120

람다를 사용할 때와 피할 때

람다는 한 줄 표현식에 들어가는 간결한 일회성 연산에 이상적입니다. map, filter 같은 함수형 프로그래밍 구조에서 흔히 쓰입니다.

하지만 프로덕션 코드에서 지나치게 복잡한 람다는 피하세요. 길고 읽기 어려운 원라이너는 유지보수성을 해칩니다. 그런 경우에는 명확한 독스트링을 가진 이름이 있는 함수가 더 낫습니다.

람다 vs 일반 함수

특징람다일반 함수
문법lambda x: x + xdef add(x): return x + x
본문단일 표현식만 가능여러 문장 허용
이름익명 (식별자 없음)반드시 이름 필요
반환표현식에서 암시적return으로 명시적
용도짧은, 일회성 로직재사용 가능, 복잡한 로직

핵심 요약

python

  1. 파이썬 함수 인자 마스터하기: 위치, 키워드, 기본 매개변수
  2. 파이썬 람다 함수: 익명 함수 실전 가이드
  3. Python 클로저 이해하기: 중첩 함수가 변수 캡처하는 방법
  4. C++ 연산자 오버로딩 실전 가이드: 문법, 접근법, 코드 예제
  5. C++ 함수 완전 정복: 실전 코드 예제로 이해하기
  6. Python print() 함수 완벽 가이드: 예제와 고급 기법
  7. Python strip() 메서드 완전 정복: 종합 가이드와 실전 예제
  8. Python str.count() 마스터하기: 문자 및 부분문자열 개수 세기 예제
  9. Python format() 문자열 마스터하기: 명확한 예제로 완전 정복
  10. Python String.find() 메서드 마스터하기: 문법, 예제, 대안 비교