간단한 용어로 파이썬 람다 함수 이해하기
Python의 람다 함수는 즉석에서 작고 익명의 함수를 만드는 방법입니다. 특히 한 줄로 정의할 수 있는 짧은 작업에 유용합니다. 이 글에서는 람다 함수가 무엇이고, 어떻게 작동하는지, Python 코드에서 효과적으로 사용하는 방법을 살펴보겠습니다.
람다 함수란 무엇인가요?
람다 함수는 lambda
키워드로 정의된 작은 익명 함수입니다. def
로 정의된 일반 함수와 달리 람다 함수는 일반적으로 간단한 작업에 사용되며 이름이 필요하지 않습니다. 인수는 아무리 많아도 되지만 표현식은 하나만 포함할 수 있습니다.
# Basic lambda function
add = lambda x, y: x + y
# Using the lambda function
result = add(5, 3)
print(result) # Output: 8
람다 함수의 구문
람다 함수의 구문은 다음과 같습니다.
lambda arguments: expression
여기서 arguments
는 람다 함수가 취하는 매개변수이고, expression
는 평가되어 반환되는 단일 표현식입니다. 람다 함수는 함수 객체가 필요한 모든 곳에서 사용할 수 있습니다.
람다 함수의 일반적인 용도
람다 함수는 종종 map()
, filter()
, sorted()
와 같은 함수와 함께 사용되어 목록이나 다른 반복 가능한 항목에 대한 연산을 수행합니다.
map()과 함께 Lambda 사용
map()
함수는 주어진 함수를 반복 가능한 항목(예: 목록)의 모든 항목에 적용하고 반복자를 반환합니다. 람다 함수를 사용하여 적용할 함수를 지정할 수 있습니다.
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x ** 2, numbers)
# Convert the map object to a list and print
print(list(squared_numbers)) # Output: [1, 4, 9, 16, 25]
filter()와 함께 Lambda 사용
filter()
함수는 True
또는 False
를 반환하는 함수를 기반으로 반복 가능한 요소에서 요소를 필터링합니다. 람다 함수는 종종 필터링 기준을 정의하는 데 사용됩니다.
numbers = [1, 2, 3, 4, 5]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
# Convert the filter object to a list and print
print(list(even_numbers)) # Output: [2, 4]
sorted()와 함께 Lambda 사용
sorted()
함수는 반복 가능한 항목에서 정렬된 목록을 반환합니다. 람다 함수를 사용하여 사용자 지정 정렬 기준을 지정할 수 있습니다.
data = [('apple', 2), ('banana', 1), ('cherry', 3)]
sorted_data = sorted(data, key=lambda item: item[1])
print(sorted_data) # Output: [('banana', 1), ('apple', 2), ('cherry', 3)]
람다 함수의 한계
람다 함수는 간단한 작업에 유용하지만 몇 가지 제한이 있습니다.
- 단일 표현식: 람다 함수는 단일 표현식만 포함할 수 있습니다. 문장이나 여러 표현식을 포함할 수 없습니다.
- 가독성: 복잡한 연산에 람다 함수를 과도하게 사용하면 코드가 덜 가독성이 높아질 수 있습니다. 더 복잡한 논리의 경우 일반 함수를 사용하는 것이 좋습니다.
- 문서 없음: 람다 함수에는 이름이 없으므로 문서를 위한 문서 문자열도 없습니다.
결론
람다 함수는 Python에서 간단한 함수를 정의하는 간결한 방법을 제공합니다. 특히 매핑, 필터링, 정렬과 같은 빠른 작업과 함수형 프로그래밍 기술에 유용합니다. 강력한 도구이기는 하지만 코드 가독성과 유지 관리를 보장하기 위해 신중하게 사용하는 것이 중요합니다. 람다 함수를 언제 어떻게 사용해야 하는지 이해하면 더 깔끔하고 효율적인 Python 코드를 작성하는 데 도움이 됩니다.