람다(lambda) 함수는 이름이 없는 익명 함수입니다. lambda
키워드를 사용하여 간단한 로직을 한 줄로 표현할 수 있습니다. 람다 함수는 간결하고 코드의 가독성을 높이는 데 도움이 됩니다.
람다 함수의 기본 구조는 다음과 같습니다.
lambda arguments: expression
arguments
: 람다 함수의 입력 인자입니다. 여러 개의 인자를 받을 수 있습니다.expression
: 인자를 사용하여 계산하는 표현식입니다. 이 표현식의 결과가 람다 함수의 반환값이 됩니다.람다 함수는 주로 다음과 같은 경우에 사용됩니다.
sort()
메서드나 sorted()
함수에서 key
인자로 사용되어 정렬 기준을 정의합니다.filter()
함수에서 필터링 조건을 정의하는 데 사용됩니다.map()
함수에서 각 요소에 적용할 변환 로직을 정의하는 데 사용됩니다.아래의 코드는 과일과 그 개수를 담은 딕셔너리로 이루어진 리스트를 정렬하고, 최대값과 최소값을 찾는 예제입니다. 예제는 '제로베이스 데이터스쿨' 수업을 참고하였습니다.
fruits = [{'수박': 8}, {'포도': 13}, {'참외': 12}, {'사과': 17}, {'자두': 19}, {'자몽': 15}]
fruits.sort(key=lambda x: list(x.values())[0])
max_fruit = max(fruits, key=lambda x: list(x.values())[0])
min_fruit = min(fruits, key=lambda x: list(x.values())[0])
print('정렬 : ', fruits)
print('최대 : ', max_fruit)
print('최소 : ', min_fruit)
fruits.sort(key=lambda x: list(x.values())[0])
이 부분에서 key
인자에 람다 함수를 사용하여 리스트 fruits
를 정렬합니다. 람다 함수는 딕셔너리의 값을 추출하여 정렬의 기준으로 삼습니다. x.values()
는 딕셔너리의 값들을 반환하고, list(x.values())[0]
로 첫 번째 값을 가져옵니다.
max_fruit = max(fruits, key=lambda x: list(x.values())[0])
min_fruit = min(fruits, key=lambda x: list(x.values())[0])
max()
와 min()
함수는 리스트의 최대값과 최소값을 찾을 때 사용됩니다. key
인자에 람다 함수를 지정하여 딕셔너리의 값을 기준으로 최대값과 최소값을 찾습니다.
람다 함수는 간단한 로직을 표현할 때 매우 유용합니다. 하지만 복잡한 로직을 구현할 때는 일반 함수를 사용하는 것이 코드의 가독성을 높이고 유지 보수를 용이하게 합니다.