람다(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) // 출력 결과 ([1, 3, 5])
위 코드는 filter() 함수와 람다 함수를 사용하여 mylist 리스트의 요소 중에서 홀수만을 추출하여 mylist2 리스트에 저장한다.
3. sorted() 함수와 함께 사용하기
sorted() 함수는 시퀀스(리스트, 튜플 등)의 요소를 정려란 결과를 반환한다. 이 때 sorted() 함수와 함께 람다 함수를 사용하여 정렬 기준을 지정할 수 있다. 예시를 들어보자!
animals = ['tiger', 'lion', 'dog']
이 리스트를 길이 순으로 정렬하고자 한다면 다음과 같이 sorted() 함수와 람다 함수를 사용할 수 있다.
mylist2 = sorted(animals, key=lambda x : len(x))
위 코드는 sorted() 함수와 람다 함수를 사용하여 animals 리스트의 요소를 길이 순으로 정렬한 결과를 mylist2 리스트에 저장된다.
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에 저장한다.
이렇게 함수를 이용하여 lambda를 사용해봤다.
'Programming > Python' 카테고리의 다른 글
[Python / Django] 파이썬 가상 환경 구성 (0) | 2025.01.15 |
---|---|
[Python] Python 기반 웹 페이지 mariaDB로 생성한 데이터베이스 연동 (0) | 2025.01.15 |
[Python] 클래스 (0) | 2024.12.18 |
[개념]packing 과 unpacking (1) | 2024.11.13 |
[Python] VPC 구축 (0) | 2024.07.10 |