Python/기본

[Python] sorted() 함수

댕주 2024. 11. 9. 11:36

sorted() 함수

파이썬의 sorted() 함수는 이터러블 객체를 정렬하여 새로운 리스트로 반환하는 함수이다. sorted() 는 리스트뿐 아니라 튜플, 문자열 등 다양한 이터러블 객체에 사용할 수 있다. 이 함수는 원본 데이터의 순서를 변경하지 않고, 정렬된 새로운 리스트를 반환한다는 점이 특징이다.

 

기본 문법

sorted(이터러블, key=None, reverse=False)
  • 이터러블: 정렬할 대상(리스트, 튜플, 문자열 등)
  • key: 정렬 기준을 설정하는 함수로, 각 요소에 대해 적용할 함수를 지정한다
  • reverse: 기본값은 False 이며, True 로 설정하면 내림차순으로 정렬된다

sorted() 의 주요 옵션

1. 기본 사용법

기본적으로 sorted() 는 오름차순으로 정렬된 리스트를 반환한다

numbers = [3, 1, 4, 1, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # [1, 1, 3, 4, 5]

 

2. key 매개변수

key 매개변수는 정렬 기준을 설정하는 함수를 지정한다. 각 요소에 key 함수를 적용하여 반환된 값을 기준으로 정렬한다

words = ["apple", "banana", "cherry", "watermelon"]
sorted_by_length = sorted(words, key=len)
print(sorted_by_length) # 출력: ['apple', 'banana', 'cherry', 'watermelon']

 

3. lambda 와 함께 사용하는 key

key 에 익명 함수인 lambda 를 활용하여 정렬 기준을 더 유연하게 설정할 수 있다. 예를 들어, 리스트의 각 요소가 튜플일 경우 튜플의 두 번째 요소 기준으로 정렬할 수 있다

items = [(1, 2), (3, 1), (5, 0)]
sorted_by_second = sorted(items, key=lambda x: x[1])
print(sorted_by_second) # [(5, 0), (3, 1), (1, 2)]

 

4. reverse 매개변수

reverse=True 로 설정하면 내림차순으로 정렬할 수 있다

numbers = [3, 1, 4, 1, 5]
sorted_descending = sorted(numbers, reverse=True)
print(sorted_descending) # [5, 4, 3, 1, 1]

특징 요약

  • sorted()원본 데이터의 순서를 변경하지 않고, 정렬된 새로운 리스트를 반환한다
  • key 매개변수를 사용해 정렬 기준을 자유롭게 설정할 수 있다
  • 메모리 효율성을 위해 대규모 데이터를 다룰 때는 제너레이터 표현식과 함께 사용할 수도 있다

'Python > 기본' 카테고리의 다른 글

[Python] lambda  (0) 2024.11.09
[Python] enumerate  (0) 2024.11.09
[Python] 제너레이터 표현식  (0) 2024.11.09
[Python] 리스트 컴프리헨션(List Comprehension)  (1) 2024.11.09
[Python] match  (0) 2024.11.08