파이썬에서 람다(lambda)함수는 익명 함수(anonymous function)로서, 한 줄로 간단한 함수를 정의할 때 사용되며, 주로 함수 인자로 전달하거나 간단한 연산을 수행하는 함수를 간결하게 표현할 때 유용합니다.
이 글에서는 람다(lambda)함수의 사용법과 다양한 활용 예시를 다룰 것입니다.

ㅡㅡㅡㅡㅡㅡㅡ목차ㅡㅡㅡㅡㅡㅡㅡ
1. 람다(lambda)함수란?
2. 람다(lambda)함수 형식
3. 람다(lambda)함수 사용 예시
- 간단한 산술 연산
- sorted()함수와 콜라보하여 리스트 요소 정렬
- map()함수와 콜라보하여 리스트 요소 변환
- filter()함수와 콜라보하여 조건에 맞는 요소 필터링
4. 람다(lambda)함수 사용시 주의 사항
1. 람다(lambda)함수란?
- 파이썬에서 람다(lambda)함수는 이름이 없는 간단한 함수를 의미합니다.
- 람다(lambda)함수는 일반적인 def 키워드를 사용하여 정의하는 함수와는 다르게, 한 줄의 표현식으로 작성할 수 있으며, 다른 함수의 인자로 전달하거나, 변수에 할당하거나, 리스트나 딕셔너리의 값으로 사용할 수 있습니다.
- 람다(lambda)함수는 특정한 상황에서 코드를 간결하고 가독성 있게 만들어줍니다.
2. 람다(lambda)함수 형식
- lambda 키워드 다음에는 함수에 전달할 매개변수들을 콤마로 구분하여 나열합니다.
- 매개변수가 없는 경우에는 빈칸으로 두면 됩니다.
- 콜론(:) 다음에는 매개변수들을 이용하여 계산하거나 반환할 표현식을 작성합니다.
- 표현식은 반드시 한 줄로 작성해야 하며, return 키워드는 사용하지 않습니다.
lambda arguments: expression
lambda 매개변수들: 표현식
- lambda: 람다 함수를 정의하기 위한 키워드입니다.
- arguments: 함수의 인자(매개변수)를 나타내는 부분입니다. 여러 개의 인자를 콤마로 구분할 수 있습니다.
- expression: 함수가 수행할 연산 또는 표현식을 나타내는 부분입니다. 이 표현식의 결과가 람다 함수의 반환 값이 됩니다.
3. 람다(lambda)함수 사용 예시
3.1. 간단한 산술 연산
add = lambda x, y: x + y
subtract = lambda x, y: x - y
multiply = lambda x, y: x * y
divide = lambda x, y: x / y
result1 = add(5, 3)
result2 = subtract(10, 4)
result3 = multiply(6, 7)
result4 = divide(9, 3)
print(result1, result2, result3, result4) # 출력: 8 6 42 3.0
3.2. sorted()함수와 콜라보하여 리스트 요소 정렬
- sorted()함수와 함께 람다(lambda)함수를 사용하여 학생 딕셔너리를 나이에 따라 정렬합니다.
students = [
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 22},
{"name": "Charlie", "age": 28}
]
sorted_students = sorted(students, key=lambda student: student["age"])
print(sorted_students)
# 출력:
# [{'name': 'Bob', 'age': 22}, {'name': 'Alice', 'age': 25}, {'name': 'Charlie', 'age': 28}]
3.3. map()함수와 콜라보하여 리스트 요소 변환
- map()함수와 함께 람다(lambda)함수를 사용하여 리스트의 각 요소를 제곱합니다.
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x**2, numbers))
print(squared_numbers) # 출력: [1, 4, 9, 16, 25]
3.4. filter()함수와 콜라보하여 조건에 맞는 요소 필터링
- filter() 함수와 람다 함수를 사용하여 짝수만 필터링합니다.
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # 출력: [2, 4, 6, 8, 10]
4. 람다(lambda)함수 사용시 주의 사항
- 람다(lambda)함수는 한 줄의 표현식으로 작성해야 하므로, 복잡한 로직이나 조건문, 반복문 등을 사용할 수 없습니다. 이 경우에는 일반적인 def 키워드를 사용하여 함수를 정의하는 것이 좋습니다.
- 람다(lambda)함수는 이름이 없으므로, 디버깅이 어려울 수 있습니다.
- 람다(lambda)함수를 여러 번 사용하거나 재사용하려면, 변수에 할당하거나 다른 함수로 정의하는 것이 좋습니다.
- 람다(lambda)함수는 가독성을 높이기 위해 적절하게 사용해야 합니다. 람다(lambda)함수를 남용하거나 복잡하게 사용하면, 코드의 이해도가 떨어질 수 있습니다.
'Python' 카테고리의 다른 글
[Python] 파이썬 abs() 함수 : 절댓값 구하기 (49) | 2023.10.13 |
---|---|
[Python] 파이썬 enumerate() 함수 정리 (60) | 2023.10.12 |
[Python] 파이썬 정렬 - sorted 함수 정리 (60) | 2023.09.28 |
[파이썬] lower | upper (38) | 2023.09.28 |
[파이썬] islower | isupper (32) | 2023.09.28 |