Python

3.5 람다(lambda)

수현조 2024. 11. 29. 09:38

 

1. 람다 함수란?

람다 함수는 간단한 계산을 빠르게 할 수 있는 미니 함수예요.
보통 함수를 만들려면 이름을 붙여야 하지만, 람다 함수는 이름 없이 바로 사용할 수 있어요.

예시

# 일반 함수
def add(x, y):
    return x + y

# 람다 함수
add_lambda = lambda x, y: x + y

두 함수는 같은 일을 해요!
add(10, 20)와 add_lambda(10, 20) 둘 다 30을 반환합니다.


2. 람다 함수의 문법

람다 함수의 기본 문법은 아주 간단해요:

lambda 입력값: 계산식

예시

lambda x: x * 2  # 입력값 x를 2배로 만드는 함수

3. 언제 람다 함수를 사용할까?

람다 함수는 간단한 계산이 필요할 때 사용해요.

  • 이름을 붙이지 않아도 되는 함수가 필요할 때.
  • 한 번만 사용할 계산이라면 람다 함수가 좋아요.

4. 람다 함수 활용 예시

(1) 리스트의 각 숫자를 두 배로 만들기

numbers = [1, 2, 3, 4, 5]
doubled = list(map(lambda x: x * 2, numbers))
print(doubled)  # 출력: [2, 4, 6, 8, 10]
  • lambda x: x * 2는 숫자를 두 배로 만드는 함수예요.
  • map은 이 함수를 numbers 리스트에 적용해서 새로운 리스트를 만들어줍니다.

(2) 홀수만 걸러내기

numbers = [1, 2, 3, 4, 5]
odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))
print(odd_numbers)  # 출력: [1, 3, 5]
  • lambda x: x % 2 != 0는 홀수인지 확인하는 함수예요.
  • filter는 이 함수를 적용해서 홀수만 남겨줍니다.

(3) 리스트의 합 구하기

from functools import reduce

numbers = [1, 2, 3, 4, 5]
total = reduce(lambda x, y: x + y, numbers)
print(total)  # 출력: 15
  • lambda x, y: x + y는 두 숫자를 더하는 함수예요.
  • reduce는 이 함수를 반복적으로 적용해서 리스트의 모든 숫자를 더해줍니다.

5. 람다 함수의 장점

  • 간단해요: 한 줄로 함수 작성 끝!
  • 이름이 필요 없어요: 계산에만 집중할 수 있어요.

예시: 리스트의 숫자를 제곱하기

numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x ** 2, numbers))
print(squared)  # 출력: [1, 4, 9, 16, 25]

6. 람다 함수의 주의점

  • 너무 복잡한 계산은 람다 함수에 적합하지 않아요.
    읽기 어려워질 수 있으니, 복잡한 경우엔 일반 함수를 쓰는 게 좋아요.

복잡한 경우: 일반 함수로 작성

# 복잡한 계산은 일반 함수로 작성
def calculate_discount(price):
    if price > 100:
        return price * 0.9
    return price

print(calculate_discount(150))  # 출력: 135.0

정리

람다 함수는:

  1. 간단한 계산을 빠르게 만들고 싶을 때 사용.
  2. 이름 없이도 바로 계산 가능.
  3. map, filter, reduce 같은 함수와 자주 사용.

가장 간단한 예제

# 5를 두 배로 만들기
double = lambda x: x * 2
print(double(5))  # 출력: 10

 

 

'Python' 카테고리의 다른 글

4.2 문자열과 리스트  (1) 2024.11.29
4.1 자료형  (0) 2024.11.29
3.3 지역변수, 전역변수  (0) 2024.11.29
3.2.4 연습 문제: 놀이 공원 (1)  (1) 2024.11.28
3.2.3 연습 문제: 이자(단리) 계산  (1) 2024.11.28