🖥️ 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 키워드를 사용하여 명시적으로 함수를 정의하는 것이 좋습니다.
반응형