효율적인 데이터 정렬
Coddy Python 여정의 Logic & Flow 섹션에 포함된 레슨 — 78개 중 48번째.
정렬은 컴퓨터 과학에서 기본적인 연산이며, 파이썬은 데이터를 효율적으로 정렬할 수 있는 강력한 내장 도구를 제공합니다. 정렬을 위한 주요 함수는 sorted()이며, 이는 숫자, 문자열 및 더 복잡한 객체를 포함한 다양한 유형의 데이터를 정렬하는 데 사용할 수 있습니다.
기본 정렬:
sorted() 함수는 반복 가능한 객체(예: 리스트, 튜플 또는 세트)를 인자로 받아 정렬된 요소를 포함하는 새로운 리스트를 반환합니다. 기본적으로 오름차순으로 정렬합니다.
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
# 출력: [1, 1, 2, 3, 4, 5, 6, 9]이 예제에서 sorted()는 numbers 리스트를 오름차순으로 정렬합니다.
역순 정렬:
내림차순으로 정렬하려면 reverse 매개변수를 사용하고 True로 설정하면 됩니다.
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)
# 출력: [9, 6, 5, 4, 3, 2, 1, 1]여기서 sorted()는 numbers 리스트를 내림차순으로 정렬합니다.
문자열 정렬하기:
sorted() 함수는 사전식 순서(즉, 사전에서 나타나는 순서)를 기준으로 문자열을 정렬할 수도 있습니다.
words = ["apple", "banana", "cherry"]
sorted_words = sorted(words)
print(sorted_words)
# 출력: ['apple', 'banana', 'cherry']이 예제에서 sorted()는 words 리스트를 알파벳 순서로 정렬합니다.
Key 함수를 사용한 사용자 정의 정렬:
더 복잡한 정렬 요구 사항의 경우, key 매개변수를 사용하여 정렬 순서를 결정하는 함수를 지정할 수 있습니다. key 함수는 정렬 전에 각 요소에 적용되며, 반환된 값들이 비교에 사용됩니다.
words = ["banana", "kiwi", "fig"]
sorted_words_by_length = sorted(words, key=len)
print(sorted_words_by_length)
# 출력: ['fig', 'kiwi', 'banana']이 경우, sorted()는 len() 함수를 key로 사용하여 각 단어의 길이를 기준으로 words 리스트를 정렬합니다.
챌린지
쉬움sorted() 함수를 사용하여 다음 정렬 작업을 수행하는 프로그램을 작성하세요:
- 숫자 리스트를 오름차순으로 정렬합니다.
- 동일한 숫자 리스트를 내림차순으로 정렬합니다.
- 문자열 리스트를 알파벳 순서로 정렬합니다.
- 동일한 문자열 리스트를 길이에 따라 정렬합니다.
치트 시트
sorted() 함수는 데이터를 정렬하고 정렬된 요소가 포함된 새 리스트를 반환합니다.
기본 정렬 (오름차순):
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
# 출력: [1, 1, 2, 3, 4, 5, 6, 9]역순 정렬 (내림차순):
sorted_numbers_desc = sorted(numbers, reverse=True)
# 출력: [9, 6, 5, 4, 3, 2, 1, 1]문자열을 알파벳 순으로 정렬:
words = ["apple", "banana", "cherry"]
sorted_words = sorted(words)
# 출력: ['apple', 'banana', 'cherry']키 함수를 사용한 사용자 정의 정렬:
sorted_words_by_length = sorted(words, key=len)
# 문자열 길이에 따라 정렬직접 해보기
# 초기 입력값
numbers = [5, 3, 8, 1, 2]
words = ["elephant", "cat", "dolphin", "bee"]
# 작업 1: 숫자를 오름차순으로 정렬
# 작업 2: 숫자를 내림차순으로 정렬
# 작업 3: 단어를 알파벳순으로 정렬
# 작업 4: 단어를 길이순으로 정렬
# 각 작업에 대해 'pass'를 코드로 대체하세요
ascending_numbers = None
descending_numbers = None
alphabetical_words = None
length_sorted_words = None
# 결과 출력
print("Ascending:", ascending_numbers)
print("Descending:", descending_numbers)
print("Alphabetical:", alphabetical_words)
print("By Length:", length_sorted_words)이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.