728x90
728x90
목 차
1. sorted() 함수란?
- Python의 sorted() 함수는 반복 가능한(iterable) 객체를 정렬하여 새로운 리스트로 반환하는 내장 함수입니다.
- 원본 데이터를 변경하지 않고, 정렬된 새로운 리스트를 반환하기 때문에 원본 데이터가 변하지 않는다는 특징을 가지고 있습니다.
- sorted() 함수는 리스트, 튜플, 문자열, 딕셔너리, 집합 등의 반복 가능한 객체를 정렬할 때 사용할 수 있습니다.
2. 기본 문법
sorted(iterable, key=None, reverse=False)
iterable (필수)
- 정렬할 대상이 되는 반복 가능한 객체를 지정합니다. 여기에는 리스트, 튜플, 문자열, 딕셔너리, 집합 등이 포함될 수 있습니다.
key (선택, 기본값: None)
- 정렬 기준을 정의하는 함수입니다. 각 요소에 대해 이 함수가 적용된 결과를 기준으로 정렬합니다.
- lambda 함수나 기존 함수를 전달하여 정렬 기준을 지정할 수 있습니다.
reverse (선택, 기본값: False)
- True로 설정하면 내림차순으로 정렬하고, 기본값인 False는 오름차순으로 정렬합니다.
3. 사용법 예시
3-1. 기본 사용
- 정렬된 새로운 리스트를 반환합니다. 원래의 반복 가능한 객체는 변경되지 않습니다.
numbers = [3, 4, 1, 2, 5]
sorted_numbers = sorted(numbers)
print(numbers)
print(sorted_numbers)
'''
실행 결과
[3, 4, 1, 2, 5]
[1, 2, 3, 4, 5]
'''
3-2. reverse 매개변수
- 내림차순으로 정렬하려면 reverse=True로 설정합니다.
numbers = [3, 4, 1, 2, 5]
sorted_numbers = sorted(numbers, reverse=True)
print(numbers)
print(sorted_numbers)
'''
실행 결과
[3, 4, 1, 2, 5]
[5, 4, 3, 2, 1]
'''
3-3. key 매개변수
- key 매개변수는 정렬 기준을 정의하는 데 사용됩니다. key로 전달된 함수는 각 요소에 적용되어 그 결과를 기준으로 정렬됩니다.
# 리스트 내 문자열 길이에 따라 정렬
words = ["apple", "banana", "cherry", "date"]
sorted_words = sorted(words, key=len)
print(sorted_words)
'''
실행 결과
['date', 'apple', 'banana', 'cherry']
'''
3-4. lambda를 사용한 key 매개변수
- key에 lambda 함수를 전달하여 더 복잡한 기준으로 정렬할 수 있습니다.
# 튜플 두번째 값을 기준으로 정렬
pairs = [(1, 3), (4, 1), (2, 2), (5, 0)]
sorted_pairs = sorted(pairs, key=lambda pair: pair[1])
print(sorted_pairs)
'''
실행 결과
[(5, 0), (4, 1), (2, 2), (1, 3)]
'''
3-5. 딕셔너리 key로 정렬
my_dict = {'apple': 2, 'banana': 1, 'cherry': 3}
sorted_keys = sorted(my_dict)
print(sorted_keys)
'''
실행 결과
['apple', 'banana', 'cherry']
'''
3-6. 딕셔너리 value로 정렬
my_dict = {'apple': 2, 'banana': 1, 'cherry': 3}
sorted_by_value = sorted(my_dict, key=lambda k: my_dict[k])
print(sorted_by_value)
'''
실행 결과
['banana', 'apple', 'cherry']
'''
3-7. 문자열 정렬
word = "python"
sorted_chars = sorted(word)
print(sorted_chars)
'''
실행 결과
['h', 'n', 'o', 'p', 't', 'y']
'''
3-8. 리스트의 리스트 정렬
# 리스트 내 리스트의 두번째 요소를 기준으로 내림차순 정렬
students = [["Alice", 85], ["Bob", 75], ["Charlie", 95]]
sorted_students = sorted(students, key=lambda student: student[1], reverse=True)
print(sorted_students)
'''
실행 결과
[['Charlie', 95], ['Alice', 85], ['Bob', 75]]
'''
3-9. 튜플에서 두 개 이상의 요소를 기준으로 정렬
data = [(2, 3), (1, 2), (4, 1), (2, 2)]
# 첫 번째 값을 기준으로, 첫 번째 값이 같으면 두 번째 값으로 정렬
sorted_data = sorted(data, key=lambda x: (x[0], x[1]))
print(sorted_data)
'''
실행 결과
[(1, 2), (2, 2), (2, 3), (4, 1)]
'''
4. 마무리
- sorted() 함수는 반복 가능한 객체를 정렬하여 새로운 리스트로 반환합니다.
- 원본 데이터를 변경하지 않으며, 정렬된 리스트를 반환합니다.
- 복잡한 데이터 구조도 key 매개변수를 사용하여 정렬할 수 있습니다.
- sorted()는 리스트 외에도 다양한 반복 가능한 객체에서 사용할 수 있으며, key와 reverse 매개변수를 통해 유연하게 정렬할 수 있습니다.
관련글 목록
[Python] 파이썬 문자 개수 세기 - 문자열 count() 메서드
[Python] 파이썬 대문자 소문자 변경 (upper, lower, capitalize, title, swapcase, isupper, islower)
728x90
'프로그래밍 > [Python] 파이썬' 카테고리의 다른 글
[Python] lambda 함수 이해하기 - 파이썬 문법 (0) | 2024.10.24 |
---|---|
[Python] sorted() 함수와 sort() 메서드 차이점 (0) | 2024.10.23 |
[Python] 파이썬 문자 개수 세기 - 문자열 count() 메서드 (0) | 2024.10.12 |
[Python] 파이썬 대문자 소문자 변경 (upper, lower, capitalize, title, swapcase, isupper, islower) (0) | 2024.09.30 |
[Python] 파이썬 짝수 홀수 판별 예제 (0) | 2024.09.29 |