Menu
Coddy logo textTech

효율적인 데이터 정렬

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 리스트를 정렬합니다.

challenge icon

챌린지

쉬움

sorted() 함수를 사용하여 다음 정렬 작업을 수행하는 프로그램을 작성하세요:

  1. 숫자 리스트를 오름차순으로 정렬합니다.
  2. 동일한 숫자 리스트를 내림차순으로 정렬합니다.
  3. 문자열 리스트를 알파벳 순서로 정렬합니다.
  4. 동일한 문자열 리스트를 길이에 따라 정렬합니다.

치트 시트

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)
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Logic & Flow의 모든 레슨