🖥️ IT, 컴퓨터/🐍 Python
[Python] lambda 함수 사용법
김 홍시
2024. 6. 12. 13:27
반응형
lambda
는 Python에서 익명 함수를 생성하기 위해 사용되는 키워드입니다. lambda
함수를 사용하면 작은 함수를 간결하게 정의할 수 있습니다. 보통 def
키워드를 사용하여 함수를 정의할 필요가 없거나, 일회성으로 사용될 간단한 함수를 정의할 때 유용합니다.
기본 형식
lambda arguments: expression
arguments
: 함수의 인수입니다. 여러 개의 인수를 쉼표로 구분하여 사용할 수 있습니다.expression
: 인수에 대해 수행할 연산입니다. 단일 표현식만 작성할 수 있으며, 해당 표현식의 결과값이 반환됩니다.
예제
기본 예제
단일 인수를 받아 제곱을 반환하는 lambda
함수 예제입니다.
square = lambda x: x ** 2
print(square(5))
출력:
25
여러 인수를 사용하는 예제
두 개의 인수를 더하는 lambda
함수 예제입니다.
add = lambda x, y: x + y
print(add(3, 4))
출력:
7
리스트의 정렬
리스트의 각 요소가 튜플일 때, 튜플의 두 번째 요소를 기준으로 정렬하는 예제입니다.
data = [(1, 'banana'), (2, 'apple'), (3, 'cherry')]
# 두 번째 요소를 기준으로 정렬
sorted_data = sorted(data, key=lambda x: x[1])
print(sorted_data)
출력:
[(2, 'apple'), (1, 'banana'), (3, 'cherry')]
map
함수와 함께 사용
리스트의 각 요소를 제곱하는 lambda
함수 예제입니다.
numbers = [1, 2, 3, 4, 5]
# map 함수를 사용하여 리스트의 각 요소를 제곱
squared_numbers = map(lambda x: x ** 2, numbers)
print(list(squared_numbers))
출력:
[1, 4, 9, 16, 25]
filter
함수와 함께 사용
리스트에서 짝수만 필터링하는 lambda
함수 예제입니다.
numbers = [1, 2, 3, 4, 5, 6]
# filter 함수를 사용하여 리스트에서 짝수만 선택
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers))
출력:
[2, 4, 6]
reduce
함수와 함께 사용
리스트의 모든 요소를 곱하는 lambda
함수 예제입니다. reduce
함수는 functools
모듈에서 가져와야 합니다.
from functools import reduce
numbers = [1, 2, 3, 4, 5]
# reduce 함수를 사용하여 리스트의 모든 요소를 곱하기
product = reduce(lambda x, y: x * y, numbers)
print(product)
출력:
120
요약
lambda
는 익명 함수를 간결하게 정의할 때 사용됩니다.lambda
함수는 단일 표현식만 작성할 수 있으며, 결과값이 반환됩니다.lambda
함수는map
,filter
,sorted
,reduce
등과 같은 함수와 함께 자주 사용됩니다.- 간단한 연산이나 일회성 함수 정의에 유용하지만, 복잡한 로직을 처리할 때는 가독성을 위해
def
키워드를 사용하여 명시적으로 함수를 정의하는 것이 좋습니다.
반응형