람다(lambda) 함수
는 함수형 프로그래밍에서 중요한 개념 중 하나로, 익명 함수(anonymous function)라고도 부릅니다. 람다 함수는 이름이 없는 함수로, 일반적으로 함수를 한 번만 사용하거나 함수를 인자로 전달해야 하는 경우에 매우 유용하게 사용됩니다.
이번 블로그에서는 Python에서 람다 함수의 개념과 활용 예제에 대해 다루어보겠습니다.
람다 함수는 다음과 같은 형태로 정의됩니다.
lambda 인자 : 표현식
람다 함수는 def
키워드를 사용하여 함수를 정의하는 것보다 간결하고 간편한 방식으로 함수를 정의할 수 있습니다. 예를 들어, 다음과 같은 함수가 있다고 가정해봅시다.
def add(x, y):
return x + y
이 함수를 람다 함수로 바꾸면 다음과 같이 작성할 수 있습니다.
add = lambda x, y: x + y
이제 add
변수는 람다 함수를 참조합니다.
map()
함수는 시퀀스(리스트, 튜플 등)의 모든 요소에 함수를 적용한 결과를 반환합니다. 이 때, map()
함수와 함께 람다 함수를 사용하여 코드를 간결하게 작성할 수 있습니다. 예를 들어, 다음과 같은 리스트가 있다고 가정해봅시다.
mylist = [1, 2, 3, 4, 5]
이 리스트의 각 요소에 2를 곱하고자 한다면 다음과 같이 map()
함수와 람다 함수를 사용할 수 있습니다.
mylist2 = list(map(lambda x: x * 2, mylist))
print(mylist2)
위 코드는 map()
함수와 람다 함수를 사용하여 mylist
리스트의 각 요소에 2를 곱한 결과를 mylist2
리스트에 저장합니다. 출력 결과는 다음과 같습니다.
[2, 4, 6, 8, 10]
filter()
함수는 시퀀스(리스트, 튜플 등)의 모든 요소 중에서 조건에 맞는 요소만을 반환합니다. 이 때, filter()
함수와 함께 람다 함수를 사용하여 코드를 간결하게 작성할 수 있습니다. 예를 들어, 다음과 같은 리스트가 있다고 가정해봅시다.
mylist = [1, 2, 3, 4, 5]
이 리스트에서 홀수만 추출하고 싶다면, 다음과 같이 filter()
함수와 람다 함수를 사용하여 홀수만을 추출할 수 있습니다.
mylist2 = list(filter(lambda x: x % 2 == 1, mylist))
print(mylist2)
위 코드는 filter()
함수와 람다 함수를 사용하여 mylist
리스트의 요소 중에서 홀수만을 추출하여 mylist2
리스트에 저장합니다. 출력 결과는 다음과 같습니다.
[1, 3, 5]
sorted()
함수는 시퀀스(리스트, 튜플 등)의 요소를 정렬한 결과를 반환합니다. 이 때, sorted()
함수와 함께 람다 함수를 사용하여 정렬 기준을 지정할 수 있습니다. 예를 들어, 다음과 같은 리스트가 있다고 가정해봅시다.
mylist = ['apple', 'banana', 'cherry']
이 리스트를 길이 순으로 정렬하고자 한다면 다음과 같이 sorted()
함수와 람다 함수를 사용할 수 있습니다.
mylist2 = sorted(mylist, key=lambda x: len(x))
print(mylist2)
위 코드는 sorted()
함수와 람다 함수를 사용하여 mylist
리스트의 요소를 길이 순으로 정렬한 결과를 mylist2
리스트에 저장합니다. 출력 결과는 다음과 같습니다.
['apple', 'cherry', 'banana']
reduce()
함수는 시퀀스(리스트, 튜플 등)의 모든 요소를 누적적으로 계산한 결과를 반환합니다. 이 때, reduce()
함수와 함께 람다 함수를 사용하여 계산 방식을 지정할 수 있습니다. 예를 들어, 다음과 같은 리스트가 있다고 가정해봅시다.
from functools import reduce
mylist = [1, 2, 3, 4, 5]
이 리스트의 모든 요소를 곱하고자 한다면 다음과 같이 reduce()
함수와 람다 함수를 사용할 수 있습니다.
result = reduce(lambda x, y: x * y, mylist)
print(result)
위 코드는 reduce()
함수와 람다 함수를 사용하여 mylist
리스트의 모든 요소를 곱한 결과를 result
변수에 저장합니다. 출력 결과는 다음과 같습니다.
>>> 120
위 예제를 통해 Python에서 람다 함수가 어떻게 사용되는지에 대해 살펴보았습니다. 람다 함수는 함수형 프로그래밍에서 중요한 개념 중 하나이므로, 함수형 프로그래밍을 공부하시는 분들은 람다 함수를 꼭 익혀두시기를 추천드립니다.