파이썬에서 리스트를 정렬하는 방법에는 내장 함수 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()
메서드는 리스트 자체를 정렬합니다. reverse
와 key
매개변수의 역할은 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
매개변수에 람다 함수나 별도의 함수를 전달하는 것이 효과적입니다.