[스터디노트] lambda를 이용한 정렬, 최대값, 최소값 찾기

소환인·2023년 10월 17일
0

스터디노트

목록 보기
4/48

lambda

람다(lambda) 함수는 이름이 없는 익명 함수입니다. lambda 키워드를 사용하여 간단한 로직을 한 줄로 표현할 수 있습니다. 람다 함수는 간결하고 코드의 가독성을 높이는 데 도움이 됩니다.

람다 함수의 기본 구조는 다음과 같습니다.

lambda arguments: expression
  • arguments: 람다 함수의 입력 인자입니다. 여러 개의 인자를 받을 수 있습니다.
  • expression: 인자를 사용하여 계산하는 표현식입니다. 이 표현식의 결과가 람다 함수의 반환값이 됩니다.
[사용 사례]

람다 함수는 주로 다음과 같은 경우에 사용됩니다.

  • 정렬: 리스트의 sort() 메서드나 sorted() 함수에서 key 인자로 사용되어 정렬 기준을 정의합니다.
  • 필터링: filter() 함수에서 필터링 조건을 정의하는 데 사용됩니다.
  • 매핑: map() 함수에서 각 요소에 적용할 변환 로직을 정의하는 데 사용됩니다.

lambda 사용 예제

아래의 코드는 과일과 그 개수를 담은 딕셔너리로 이루어진 리스트를 정렬하고, 최대값과 최소값을 찾는 예제입니다. 예제는 '제로베이스 데이터스쿨' 수업을 참고하였습니다.

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)

[코드 분석]

1. lambda 활용
fruits.sort(key=lambda x: list(x.values())[0])

이 부분에서 key 인자에 람다 함수를 사용하여 리스트 fruits를 정렬합니다. 람다 함수는 딕셔너리의 값을 추출하여 정렬의 기준으로 삼습니다. x.values()는 딕셔너리의 값들을 반환하고, list(x.values())[0]로 첫 번째 값을 가져옵니다.

2. 최대값과 최소값 찾기
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 인자에 람다 함수를 지정하여 딕셔너리의 값을 기준으로 최대값과 최소값을 찾습니다.


람다 함수의 장점

  • 코드를 간결하게 작성할 수 있습니다.
  • 일회용 함수를 만들 때 유용합니다.
  • 람다 함수는 이름을 지정하지 않아도 되므로, 함수의 이름을 고민하지 않아도 됩니다.

람다 함수는 간단한 로직을 표현할 때 매우 유용합니다. 하지만 복잡한 로직을 구현할 때는 일반 함수를 사용하는 것이 코드의 가독성을 높이고 유지 보수를 용이하게 합니다.

profile
돌고돌아

0개의 댓글