sorted() 함수의 key=lambda 사용해서 정렬하기

2025. 4. 28. 18:12·Language/Python

1. 파이썬 sorted() 함수와 key=lambda를 이용한 정렬

  • 파이썬에서 sorted() 함수는 반복 가능한(iterable) 객체를 정렬하여 새로운 리스트로 반환하는 함수이다.
    • 정렬 기준을 사용자 정의하고 싶을 때 key 인자에 lambda 함수를 사용하면 매우 유용하다.

 

1.1 기본 구조

sorted(iterable, key=None, reverse=False)
  • iterable
    • 리스트, 튜플 등 반복 가능한 객체
  • key
    • 각 요소에서 정렬 기준이 되는 값을 추출하는 함수 (보통 lambda 사용)
  • reverse
    • True이면 내림차순, False이면 오름차순 (기본값)

 

 

1.2 lambda를 활용한 정렬

1.2.1 기본 사용 예시
numbers = [5, 2, 9, 1, 7]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
  • 결과: [1, 2, 5, 7, 9]
    • 기본적으로 오름차순 정렬한다.

 

1.2.2 key=lambda를 사용한 정렬
  • lambda를 사용하면 특정 기준에 따라 정렬할 수 있다.
    • 결과: ['date', 'apple', 'banana', 'cherry']
    • 설명: 문자열 길이(len(x))를 기준으로 오름차순 정렬하였다.
words = ["apple", "banana", "cherry", "date"]
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words)

 

 

1.3 다양한 예시

1.3.1 숫자를 절댓값 기준으로 정렬하기
numbers = [-5, 3, -1, -7, 2]
sorted_numbers = sorted(numbers, key=lambda x: abs(x))
print(sorted_numbers)
  • 결과: [-1, 2, 3, -5, -7]
    • 설명: 절댓값이 작은 순서대로 정렬하였다.

 

1.3.2 길이 + 사전순 정렬
  • 우선 문자열 길이로 정렬하고, 길이가 같으면 사전순으로 정렬하고 싶을 경우 다음처럼 한다.
    • 결과: ['bat', 'car', 'cat', 'dog', 'apple', 'banana']
    • 설명:
      • 길이가 3인 단어끼리는 사전순으로(bat, car, cat, dog) 정렬되었다.
      • 그 다음 길이 5, 6인 단어(apple, banana)가 정렬되었다.
    • 핵심 포인트:
      • lambda x: (len(x), x) 처럼 튜플을 반환하면, 첫 번째 기준(len(x))을 비교하고,
      • 같으면 두 번째 기준(x)으로 비교한다.
words = ["cat", "dog", "apple", "bat", "car", "banana"]
sorted_words = sorted(words, key=lambda x: (len(x), x))
print(sorted_words)

 

1.3.3 여러 조건을 반대로 정렬하기
words = ["cat", "dog", "apple", "bat", "car", "banana"]
sorted_words = sorted(words, key=lambda x: (len(x), x), reverse=True)
print(sorted_words)
  • 결과: ['banana', 'apple', 'dog', 'cat', 'car', 'bat']
  • 설명:
    • 길이가 긴 단어부터, 길이가 같으면 사전 역순으로 정렬되었다.
  • 주의할 점:
    • reverse=True는 전체 정렬 결과를 뒤집는다.
    • 만약 길이는 내림차순, 사전순은 오름차순처럼 다르게 설정하고 싶으면 lambda 안에서 조정해야 한다.
  • 예를 들어:
    • 결과: 길이 긴 순서  -> 사전순 정렬이 된다.
sorted_words = sorted(words, key=lambda x: (-len(x), x))
저작자표시 비영리 변경금지 (새창열림)

'Language > Python' 카테고리의 다른 글

index() 함수  (0) 2025.04.20
튜플(Tuple) 자료형  (0) 2024.12.31
리스트 자료형  (0) 2024.12.30
문자열 자료형  (0) 2024.12.29
숫자형 (Numeric Types)  (1) 2024.12.26
'Language/Python' 카테고리의 다른 글
  • index() 함수
  • 튜플(Tuple) 자료형
  • 리스트 자료형
  • 문자열 자료형
스우스우03
스우스우03
보안 전문가가 되기 위한 노력들
  • 스우스우03
    스우스우
    스우스우03
  • 전체
    오늘
    어제
    • 분류 전체보기 (142)
      • 환경 세팅 및 사용법 (12)
        • 가상환경 (3)
        • Visual Studio Code (3)
        • GitHub (6)
      • Language (17)
        • Python (7)
        • C (2)
        • 알고리즘 (8)
      • Hack&Dev (15)
        • 암호학 (3)
        • Web (11)
        • Pwnable (1)
      • Wargame (88)
        • bandit wargame (42)
        • natas wargame (11)
        • wargame 암호학 (7)
        • Webhacking.kr (26)
        • wargame forensic (1)
        • wargame misc (1)
      • knowledge (8)
        • 기타 지식 (8)
      • 기타... (1)
  • hELLO· Designed By정상우.v4.10.0
스우스우03
sorted() 함수의 key=lambda 사용해서 정렬하기
상단으로

티스토리툴바