12강. [Python]람다

2025. 2. 2. 18:47·Python/Foundation

람다란?

람다는 이전에 배운 함수와 비슷한 역할을 하며 함수명을 지어줄 필요가 없어 익명함수로 불린다.

한 줄로 함수를 정의할 수 있어 간결하고 일회성으로 사용하기 좋다.

 

람다 사용 방법

람다는 lambda 매개변수 : 반환값으로 만들 수 있다.

# 람다 사용법
# lambda 매개변수 : 반환값 
add_lambda = lambda x, y : x + y

# 람다 호출법
add_lambda(2, 3)
5

위처럼 변수에 할당시켜 호출시킬 수도 있지만 람다는 할당 없이 호출시킬 수도 있다.

# 별도의 할당 없이 람다 바로 호출
y = 5
(lambda x: x + y)(10)
15

 

 

그렇다면 사용자 정의 함수와 비교해 보자.

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

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

print(add(3, 5))        
print(add_lambda(3, 5))
8
8

 

람다와 같이 활용하는 함수들

보통 람다와 같이 활용하는 몇몇 함수들을 소개하겠다.

 

1. map함수

map함수는 리스트나 튜플에 들어있는 요소를 순서대로 하나씩 꺼내 함수에 적용시켜 준다.

다음은 map함수로 리스트 안에 들어있는 요소들의 제곱값을 새로운 리스트에 넣는 예제이다.

# map() : 요소를 순서대로 꺼내 함수에 적용한다.
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x ** 2, numbers))
print(squared)
[1, 4, 9, 16, 25]

 

2. filter함수

filter함수는 특정한 조건에 맞는 요소만 걸러낼 때 사용한다.

# filter() 특정 조건에 맞는 요소만 거른다.
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # 짝수만 걸러 새로운 리스트에 저장됨.
[2, 4, 6]

 

3. reduce함수

reduce함수는 어떠한 연산을 할 때 값을 계속 누적시켜 나간다.

즉, 여러 값을 하나의 값으로 줄일 때 사용하며 reduce함수는 위 함수들과는 다르게 import 해줘야 한다.

# reduce() : 연산 시 값을 누적해나감.
from functools import reduce # reduce함수 불러기기

numbers = [1, 2, 3, 4, 5]
sum_numbers = reduce(lambda x, y: x + y, numbers) # ((((1 + 2) + 3) + 4) + 5) = 15
print(sum_numbers)
15

 

결론

람다는 위에서 소개한 함수들 말고도 여러 함수들과 같이 사용할 수 있다.

하지만 잘못 사용하면 가독성이 떨어지는 등 문제가 생길 수 있으니 조심해서 사용도록 한다.

'Python > Foundation' 카테고리의 다른 글

13강. [Python]클래스  (0) 2025.02.02
11강. [Python]함수  (0) 2025.02.02
10강. [Python]반복문  (0) 2025.02.02
09강. [Python]조건문  (0) 2025.02.02
08강. [Python]세트  (0) 2025.02.02
'Python/Foundation' 카테고리의 다른 글
  • 13강. [Python]클래스
  • 11강. [Python]함수
  • 10강. [Python]반복문
  • 09강. [Python]조건문
C0de-Log
C0de-Log
c0de-log 님의 블로그 입니다.
  • C0de-Log
    C0de-Log
    C0de-Log
  • 전체
    오늘
    어제
    • 분류 전체보기 (18)
      • C (0)
      • Python (17)
        • Foundation (14)
        • Library (3)
      • ML (0)
      • 공모전 & 자격증 (1)
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    사용자 정의 함수
    변수
    Python
    tuple
    polars
    딕셔너리
    제어문
    lambda
    Pandas
    리스트
    세트
    들여쓰기
    주석
    numpy
    클래스
    폴라스
    CLASS
    자료형
    반복문
    합격
    연산자
    튜플
    판다스
    조건문
    ADSP
    넘파이
    dictionary
    람다
    함수
    코드블록
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
C0de-Log
12강. [Python]람다
상단으로

티스토리툴바