다중 조건 정렬(multi-level sort)

timekeeep·2023년 3월 30일

파이썬 문법

목록 보기
6/7

파이썬에서는 sorted() 함수를 이용하여 다중 조건 정렬을 수행할 수 있습니다. sorted() 함수의 key 매개변수에 람다 함수를 이용하여 다중 조건 정렬을 구현할 수 있습니다. 각 조건을 우선순위에 따라 람다 함수로 정의하고, key 매개변수에 이를 전달하여 다중 조건 정렬을 수행합니다.

예를 들어, 다음과 같은 학생 정보 리스트가 있다고 가정해보겠습니다.

students = [
    {'name': 'Kim', 'kor': 90, 'math': 85, 'birth': '19991212'},
    {'name': 'Lee', 'kor': 95, 'math': 92, 'birth': '19981231'},
    {'name': 'Park', 'kor': 88, 'math': 90, 'birth': '20000305'},
    {'name': 'Choi', 'kor': 92, 'math': 95, 'birth': '19991122'},
]

이 학생 정보 리스트를 이름, 국어 점수, 수학 점수, 출생일 순으로 우선순위에 따라 정렬하려면 다음과 같이 코드를 작성할 수 있습니다.

sorted_students = sorted(students, key=lambda x: (x['name'], -x['kor'], -x['math'], x['birth']))

이 코드에서 key 매개변수에 전달하는 람다 함수는 다음과 같습니다.

  • x['name']: 이름을 우선순위 1로 정렬
  • -x['kor']: 국어 점수를 우선순위 2로 정렬하되, 내림차순으로 정렬
  • -x['math']: 수학 점수를 우선순위 3으로 정렬하되, 내림차순으로 정렬
  • x['birth']: 출생일을 우선순위 4로 정렬

이렇게 sorted() 함수를 이용하여 다중 조건 정렬을 수행하면, 정렬된 학생 정보 리스트를 반환합니다.

profile
Those who are wise will shine like the brightness of the heavens, and those who lead many to righteousness, like the stars for ever and ever

0개의 댓글