파이썬/기초 프로그래밍

Python 함수 재사용: lambda보다 내부 함수 구조가 좋은 경우

Data Jun 2025. 9. 13. 11:14

파이썬에서 리스트의 짝수만 필터링한다고 해봅시다.
가장 간단한 방법은 lambda를 쓰는 겁니다.

digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

result = list(filter(lambda x: x % 2 == 0, digits))
print(result)  # [2, 4, 6, 8, 10]

lambda는 짧고 간단하지만, 코드 곳곳에서 동일한 로직(짝수 판별)을 반복한다면 매번 lambda를 작성해야 합니다.

 

1. 내부 함수 구조로 만들기

재사용성을 높이고 싶다면 내부 함수(inner function) 로 로직을 분리하는 것이 더 낫습니다.

def also_evens(nums):
    def is_even(x):   # 내부 함수
        return x % 2 == 0
    return filter(is_even, nums)

print(list(also_evens(digits)))  # [2, 4, 6, 8, 10]
  • is_even() 이라는 이름 있는 내부 함수를 두었기 때문에 코드 가독성이 좋아집니다.
  • 짝수 판별 로직을 다른 필터링 로직과 바꿔 끼우기도 쉽습니다.
  • 한 번 정의해두면 함수 안에서 계속 재사용할 수 있어 효율적입니다.

 

 

정리하면

  • lambda → 일회성, 간단한 코드에 적합
  • 내부 함수 구조 → 같은 로직을 여러 번 쓸 때, 재사용성과 가독성에 유리
  • 따라서 재사용할 계획이 있다면 내부 함수 구조로 작성하는 것이 옳다.