파이썬 마스터하기 : 람다(Lambda) 함수

의서쿠·2023년 5월 9일
4

python-viz

목록 보기
4/6
post-thumbnail

람다(lambda) 함수는 함수형 프로그래밍에서 중요한 개념 중 하나로, 익명 함수(anonymous function)라고도 부릅니다. 람다 함수는 이름이 없는 함수로, 일반적으로 함수를 한 번만 사용하거나 함수를 인자로 전달해야 하는 경우에 매우 유용하게 사용됩니다.

이번 블로그에서는 Python에서 람다 함수의 개념과 활용 예제에 대해 다루어보겠습니다.

람다(lambda) 함수란?

람다 함수는 다음과 같은 형태로 정의됩니다.

lambda 인자 : 표현식

람다 함수는 def 키워드를 사용하여 함수를 정의하는 것보다 간결하고 간편한 방식으로 함수를 정의할 수 있습니다. 예를 들어, 다음과 같은 함수가 있다고 가정해봅시다.

def add(x, y):
    return x + y

이 함수를 람다 함수로 바꾸면 다음과 같이 작성할 수 있습니다.

add = lambda x, y: x + y

이제 add 변수는 람다 함수를 참조합니다.

람다(lambda) 함수의 활용 예제

1. map() 함수와 함께 사용하기

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]

2. filter() 함수와 함께 사용하기

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]

3. sorted() 함수와 함께 사용하기

sorted() 함수는 시퀀스(리스트, 튜플 등)의 요소를 정렬한 결과를 반환합니다. 이 때, sorted() 함수와 함께 람다 함수를 사용하여 정렬 기준을 지정할 수 있습니다. 예를 들어, 다음과 같은 리스트가 있다고 가정해봅시다.

mylist = ['apple', 'banana', 'cherry']

이 리스트를 길이 순으로 정렬하고자 한다면 다음과 같이 sorted() 함수와 람다 함수를 사용할 수 있습니다.

mylist2 = sorted(mylist, key=lambda x: len(x))
print(mylist2)

위 코드는 sorted() 함수와 람다 함수를 사용하여 mylist 리스트의 요소를 길이 순으로 정렬한 결과를 mylist2 리스트에 저장합니다. 출력 결과는 다음과 같습니다.

['apple', 'cherry', 'banana']

4. reduce() 함수와 함께 사용하기

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에서 람다 함수가 어떻게 사용되는지에 대해 살펴보았습니다. 람다 함수는 함수형 프로그래밍에서 중요한 개념 중 하나이므로, 함수형 프로그래밍을 공부하시는 분들은 람다 함수를 꼭 익혀두시기를 추천드립니다.

profile
Always be passionate ✨

0개의 댓글