반응형
sorted() 함수는 정말 중요합니다. 많이 사용되기도 하고, sorted() 없이 직접 정렬을 구현하려면 낭비이기도 하고, 속도도 내장함수만큼 나오지 않을 것이라 꼭 알아두고 여러 가지로 사용해보세요.
"Python sorted() 함수"는 파이썬에서 리스트, 튜플, 딕셔너리 등의 객체를 정렬할 때 사용하는 함수입니다. 이 함수는 정렬된 새로운 리스트 객체를 반환하며, 원본 리스트는 변경되지 않습니다.
# 예시 1: 리스트 정렬
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
# 예시 2: 딕셔너리 정렬
students = {
"Alice": 25,
"Bob": 27,
"Claire": 17,
"Dan": 35,
"Emma": 19
}
# 딕셔너리의 키를 기준으로 정렬
sorted_students_by_name = sorted(students.items(), key=lambda x: x[0])
print(sorted_students_by_name) # [("Alice", 25), ("Bob", 27), ("Claire", 17), ("Dan", 35), ("Emma", 19)]
# 딕셔너리의 값을 기준으로 정렬
sorted_students_by_age = sorted(students.items(), key=lambda x: x[1])
print(sorted_students_by_age) # [("Claire", 17), ("Emma", 19), ("Alice", 25), ("Bob", 27), ("Dan", 35)]
key = labmda를 같이 써서 딕셔너리의 정렬도 쉽게 가능합니다. 많이 쓰는 구문이라 꼭 기억해두시면 좋을 것 같아요.
아래에서는 reverse에 대해서 정리해보려고 합니다.
sorted() 함수의 reverse 옵션은 정렬 결과를 역순으로 정렬할지 여부를 결정하는 매개변수입니다. reverse=True 로 설정하면 정렬 결과를 역순으로 보여줍니다. 기본값은 reverse=False 입니다.
a = [1,3,4,2]
sorted(a)
#[1,2,3,4]
sorted(a, reverse=True)
#[4,3,2,1]
reverse와 key를 동시에 사용하는 것도 가능합니다. 아래 코드에서는 딕셔너리 리스트를 첫번째는 age로 정렬했고, 두번째는 age로 역으로 정렬했습니다.
a = [{"name":"Alice", "age":30}, {"name":"Bob", "age":25}, {"name":"Charlie", "age":35}]
sorted(a, key=lambda x: x["age"])
# [{'name': 'Bob', 'age': 25}, {'name': 'Alice', 'age': 30}, {'name': 'Charlie', 'age': 35}]
sorted(a, key=lambda x: x["age"], reverse=True)
#[{'name': 'Charlie', 'age': 35}, {'name': 'Alice', 'age': 30}, {'name': 'Bob', 'age': 25}]
정렬은 python 내장함수 sorted에 맡기시죠!
반응형
댓글