본문 바로가기

프로그래밍/[Python] 파이썬

[Python] lambda 함수 이해하기 - 파이썬 문법

by GenieIT* 2024. 10. 24.

728x90
728x90

 

1. lambda 함수란?

  • 파이썬의 lambda 함수익명 함수(anonymous function)를 만들 때 사용되는 짧고 간결한 방법입니다.
  • 일반적인 함수 정의 방식과 달리, lambda 키워드를 사용하면 이름 없이 바로 사용할 수 있는 함수를 정의할 수 있습니다.
  • 보통 간단한 계산이나 처리에 사용되며, 코드의 가독성을 높이거나 불필요한 함수 정의를 피할 수 있습니다.

 

2. 기본 문법

  • 인자들(Arguments): 콤마(,)로 구분된 함수에 전달될 입력값입니다.
  • 표현식(Expression): 인자들로 수행할 단일 표현식으로, 이 표현식의 결과가 반환됩니다.
lambda 인자1, 인자2, ... : 표현식

 

2-1. 기본 사용 예제

a = (lambda a, b, c : a+b+c)(10, 20, 30)

print(a) # 출력 : 60

 

 

2-2. 주요 특징

  • lambda 함수는 한 줄로 정의되며, 여러 줄의 코드를 처리할 수 없습니다.
  • 함수의 이름이 없기 때문에 바로 사용되거나 다른 함수에 전달될 때 주로 사용됩니다.
  • 간단한 로직에 적합하며, 복잡한 로직에는 권장되지 않습니다.

 

 

2-3. lambda와 일반 함수의 작성 방법

  • lambda를 사용한 합계 표현
sum = (lambda a, b : a+b)(10, 20)

print(sum) # 출력 : 30
  • def 를 사용한 합계 표현
def sum(a, b) :
    return a + b

print(sum(10, 20)) # 출력 : 30

 

3. 활용 예제 (sorted, map, filter)

  • 리스트 내 튜플 두번째 값을 기준으로 정렬
points = [(1, 2), (3, 4), (5, 0)]
points_sorted = sorted(points, key=lambda point: point[1])
print(points_sorted)

'''
실행 결과
[(5, 0), (1, 2), (3, 4)]
'''
  • 리스트 요소 값들을 제곱해서 새로운 리스트 생성
numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x ** 2, numbers))
print(squared)

'''
실행 결과
[1, 4, 9, 16]
'''
  • 리스트 내 짝수에 해당하는 요소만 필터링해서 새로운 리스트 생성
numbers = [1, 2, 3, 4]
even = list(filter(lambda x: x % 2 == 0, numbers))
print(even)

'''
실행 결과
[2, 4]
'''

 


 

관련글 목록

[Python] sorted() 함수와 sort() 메서드 차이점

[Python] sorted() 내장 함수

[Python] 파이썬 문자 개수 세기 - 문자열 count() 메서드

 

 

728x90