본문 바로가기

devlog

파이썬 리스트 정렬 - sort()와 sorted() 함수 및 다양한 정렬 조건 적용하기

파이썬에서 리스트를 정렬하는 방법에는 내장 함수 sorted()와 리스트 메서드 sort()가 있습니다. 이 글에서는 두 방법의 사용법과 특정 조건 및 기준으로 리스트를 정렬하는 방법에 대해 자세히 알아보겠습니다.

파이썬 내장 함수 sorted(iterable, key, reverse)

sorted() 함수는 iterable 객체를 정렬한 새로운 리스트를 반환합니다. key 매개변수를 통해 정렬 기준을 설정할 수 있고, reverse 매개변수로 정렬 순서를 내림차순으로 변경할 수 있습니다.

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
# 실행 결과: [1, 1, 2, 3, 3, 4, 5, 5, 6, 9]

reversed_numbers = sorted(numbers, reverse=True)
print(reversed_numbers)  
# 실행 결과: [9, 6, 5, 5, 4, 3, 3, 2, 1, 1]

파이썬 리스트 메서드 sort(self, reverse, key)

sort() 메서드는 리스트 자체를 정렬합니다. reversekey 매개변수의 역할은 sorted() 함수와 동일합니다.

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]
numbers.sort()
print(numbers)
# 실행 결과: [1, 1, 2, 3, 3, 4, 5, 5, 6, 9]

numbers.sort(reverse=True)
print(numbers)
# 실행 결과: [9, 6, 5, 5, 4, 3, 3, 2, 1, 1]

파이썬에서 특정 조건과 기준으로 리스트 정렬하는 방법

key 매개변수에 함수를 전달하여 정렬 기준을 설정할 수 있습니다. 예를 들어, 문자열 길이순으로 정렬하거나 여러 조건을 복합적으로 적용할 수 있습니다.

fruits = ['apple', 'banana', 'cherry', 'date']
sorted_fruits = sorted(fruits, key=len)
print(sorted_fruits)
# 실행 결과: ['date', 'apple', 'banana', 'cherry']

아래 예시는 절대값이 작은 순으로 정렬하되, 절대값이 같다면 원래 값이 큰 순으로 정렬합니다.

import random

li = [random.randint(-10, 10) for _ in range(15)]
print(li)
# 실행 결과: [-9, 10, 3, 2, 10, -8, -7, -3, 6, 8, 6, 6, 6, -2, -7]

li.sort(key=lambda x: (abs(x), -x))
print(li)  
# 실행 결과: [2, -2, 3, -3, 6, 6, 6, 6, -7, -7, 8, -8, -9, 10, 10]

 

 

파이썬에서 sort()sorted() 함수를 적절히 활용하면 다양한 조건과 기준으로 리스트를 정렬할 수 있습니다. 복잡한 정렬 조건의 경우 key 매개변수에 람다 함수나 별도의 함수를 전달하는 것이 효과적입니다.