파이썬은 매우 유용한 리스트 정렬 기능을 제공하는데, 이 중에서도 sorted 함수는 가장 일반적으로 사용되는 방법 중 하나입니다. 이 함수를 통해 리스트를 쉽게 정렬할 수 있으며, 이 글에서는 이 함수의 사용법과 다양한 활용 예시를 다룰 것입니다.
ㅡㅡㅡㅡㅡㅡㅡ목차ㅡㅡㅡㅡㅡㅡㅡ
1. sorted 함수란?
2. sorted 함수 형식
3. sorted 함수 사용 예시
- 오름차순 정렬(기본값)
- 내림차순 정렬(reverse 사용)
- 'key' 함수 활용하기
4. sorted 함수 사용시 주의 사항
- 원본 데이터 변경 X
- 비교 가능한 객체만 정렬 가능
1. sorted 함수란?
- 파이썬의 sorted() 함수는 시퀀스(리스트, 튜플, 문자열 등)의 요소를 정렬하는 데 사용되는 내장 함수입니다.
- 이 함수는 원본 시퀀스를 변경하지 않고 정렬된 새로운 시퀀스를 반환합니다.
2. sorted 함수 형식
sorted(iterable, key=None, reverse=False)
- iterable: 정렬하고자 하는 리스트, 튜플, 딕셔너리 등의 반복 가능한 객체
- key: 정렬 기준이 되는 함수. 기본값은 None이며, 이 경우에는 리스트의 요소가 그대로 정렬됩니다.
- reverse: 정렬 순서. 기본값은 False로 오름차순이며, True로 설정하면 내림차순으로 정렬됩니다.
3. sorted 함수 사용 예시
3.1. 오름차순 정렬(기본값)
numbers = [3, 4, 2, 1, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # 출력: [1, 2, 3, 4, 5]
words = ["apple", "banana", "cherry", "date", "elderberry"]
sorted_words = sorted(words)
print(sorted_words) # 출력: ['apple', 'banana', 'cherry', 'date', 'elderberry']
numbers = [3, 4, 2, 1, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # 출력: [1, 2, 3, 4, 5]
words = ["apple", "banana", "cherry", "date", "elderberry"]
sorted_words = sorted(words)
print(sorted_words) # 출력: ['apple', 'banana', 'cherry', 'date', 'elderberry']
3.2. 내림차순 정렬(reverse 사용)
numbers = [3, 4, 2, 1, 5]
sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers) # 출력: [5, 4, 3, 2, 1]
words = ["apple", "banana", "cherry", "date", "elderberry"]
sorted_words = sorted(words, reverse=True)
print(sorted_words) # 출력: ['elderberry', 'date', 'cherry', 'banana', 'apple']
numbers = [3, 4, 2, 1, 5]
sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers) # 출력: [5, 4, 3, 2, 1]
words = ["apple", "banana", "cherry", "date", "elderberry"]
sorted_words = sorted(words, reverse=True)
print(sorted_words) # 출력: ['elderberry', 'date', 'cherry', 'banana', 'apple']
3.3. 'key' 함수 활용하기
예) 문자열 길이에 따라 정렬하기.
words = ["apple", "banana", "cherry", "date", "elderberry"]
sorted_words = sorted(words, key=len)
print(sorted_words) # ['date', 'apple', 'cherry', 'banana', 'elderberry']
words = ["apple", "banana", "cherry", "date", "elderberry"]
sorted_words = sorted(words, key=len)
print(sorted_words) # ['date', 'apple', 'cherry', 'banana', 'elderberry']
예) 사용자 지정 객체의 특성 속성에 따라 정렬하기
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
people = [Person("Alice", 30), Person("Bob", 25), Person("Charlie", 35)]
sorted_people = sorted(people, key=lambda person: person.age)
for person in sorted_people:
print(f"{person.name}: {person.age}")
# 출력:
# Bob: 25
# Alice: 30
# Charlie: 35
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
people = [Person("Alice", 30), Person("Bob", 25), Person("Charlie", 35)]
sorted_people = sorted(people, key=lambda person: person.age)
for person in sorted_people:
print(f"{person.name}: {person.age}")
# 출력:
# Bob: 25
# Alice: 30
# Charlie: 35
예) 딕셔너리의 특정 키에 따라 정렬하기
data = [
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25},
{"name": "Charlie", "age": 35}
]
sorted_data = sorted(data, key=lambda x: x["age"])
print(sorted_data)
# 출력:
# [{'name': 'Bob', 'age': 25}, {'name': 'Alice', 'age': 30}, {'name': 'Charlie', 'age': 35}]
data = [
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25},
{"name": "Charlie", "age": 35}
]
sorted_data = sorted(data, key=lambda x: x["age"])
print(sorted_data)
# 출력:
# [{'name': 'Bob', 'age': 25}, {'name': 'Alice', 'age': 30}, {'name': 'Charlie', 'age': 35}]
4. sorted 함수 사용시 주의사항
4.1. 원본 데이터 변경 X
sorted() 함수는 원본 시퀀스를 변경하지 않고 새로운 정렬된 시퀀스를 반환합니다.
이것은 원본 데이터를 그대로 유지하면서 정렬된 결과를 얻을 수 있는 큰 장점입니다.
그러나 정렬된 결과를 활용하려면 반환된 값을 변수에 할당하거나 사용해야 합니다.
4.2. 비교 가능한 객체만 정렬 가능
sorted() 함수는 비교 가능한 객체에 대해서만 동작합니다.
즉, 정렬하려는 요소들 간에 비교 연산이 가능해야 합니다.
728x90
'Python' 카테고리의 다른 글
[Python] 파이썬 enumerate() 함수 정리 (60) | 2023.10.12 |
---|---|
[Python] 파이썬 람다(lambda)함수 정리 (59) | 2023.09.28 |
[파이썬] lower | upper (38) | 2023.09.28 |
[파이썬] islower | isupper (32) | 2023.09.28 |
[파이썬] title | capitalize (38) | 2023.09.28 |