Menu
CoddyTech

효율적으로 데이터 정렬하기

Coddy Python 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 48번째.

정렬은 컴퓨터 과학의 기본 작업이며, Python은 데이터를 효율적으로 정렬할 수 있는 강력한 내장 도구를 제공합니다. 정렬에 사용하는 주요 함수는 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 함수가 적용되며, 반환된 값이 비교에 사용됩니다.

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. 같은 문자열 목록을 길이에 따라 정렬하세요.

직접 해보기

# 시작용 입력값
numbers = [5, 3, 8, 1, 2]
words = ["elephant", "cat", "dolphin", "bee"]

# 과제 1: 숫자를 오름차순으로 정렬하기
# 과제 2: 숫자를 내림차순으로 정렬하기
# 과제 3: 단어를 알파벳순으로 정렬하기
# 과제 4: 단어를 길이순으로 정렬하기

# 각 과제에서 'None'을 작성한 코드로 바꾸기
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실력 점검

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

논리와 흐름의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러