Python

[Python] 파이썬 람다(lambda)함수 정리

pyflu 2023. 9. 28. 23:24

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

 

파이썬-람다(lambda)함수
파이썬-람다(lambda)함수


 
ㅡㅡㅡㅡㅡㅡㅡ목차ㅡㅡㅡㅡㅡㅡㅡ

 
 
 
1. 람다(lambda)함수란?
 
2. 람다(lambda)함수 형식
 
3. 람다(lambda)함수 사용 예시

  1. 간단한 산술 연산
  2. sorted()함수와 콜라보하여 리스트 요소 정렬
  3. map()함수와 콜라보하여 리스트 요소 변환
  4. 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
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}]
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]
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]
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)함수를 남용하거나 복잡하게 사용하면, 코드의 이해도가 떨어질 수 있습니다.

728x90