
기존에 람다 함수에 대한 학습은 했었지만
알고리즘 문제를 푸는 도중sort()함수와 함께 정렬 기준에 대한 key 값을
lambda 함수를 사용해 여러 조건을 나열하는 것을 보고,
제대로 정리를 해보려고 한다.
lambda키워드 다음에 함수에 전달할 매개변수들을 콤마로 구분하여 나열
lambda: 람다 함수를 정의하기 위한 키워드arguments: 함수의 인자(매개변수)를 나타내는 부분, 여러 개의 인자를 콤마로 구분 가능expression: 함수가 수행할 연산 또는 표현식을 나타내는 부분, 결과가 람다 함수의 반환 값lambda (arguments) : (expression) -> lambda 매개변수들 : 표현식
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) print (result2) print (result3) print (result4)
sorted() 함수와 함께 리스트 요소 정렬
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)
map() 함수와 함께 리스트 요소 변환
numbers = [1, 2, 3, 4, 5] squared_numbers = list(map(lambda x: x**2, numbers)) print(squared_numbers)
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)
람다 함수는 한 줄의 표현식으로 작성해야 하기 때문에,
복잡한 로직이나 조건문, 반복문 등을 사용할 수 없다.
def 키워드를 사용하여 함수를 정의하는 것이 좋음!람다 함수는 이름이 없어 디버깅이 어렵다.
람다 함수를 여러 번 사용하거나 재사용하기 위해서는,
변수에 할당하거나 다른 함수로 정의해야 한다.
람다 함수는 가독성을 높이기 위해 적절하게 사용해야 한다.
람다 함수를 남용하거나 복잡하게 사용하게 되면, 코드의 이해도가 떨어진다.