0Pricing
Coding Interview Prep · 강의

sorted()와 key 함수

숫자, 문자열과 튜플을 정렬합니다

sorted()와 key 함수은(는) CoddyKit의 무료 Coding Interview Prep 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Coding Interview Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Coding Interview Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

정렬로 대회 문제 정복하기

데이터를 정렬하고 나면 쉬워지는 대회 문제가 아주 많습니다. 가장 먼저 사용할 도구는 새롭게 정렬된 리스트를 반환하는 sorted()입니다. 🏆

sorted()는 복사본을 반환합니다

sorted(nums)를 호출해도 원래 리스트는 그대로 유지되고, 새로 정렬된 리스트를 받을 수 있습니다. 나중에 입력이 다시 필요할 때 유용합니다.

nums = [3, 1, 2]
print(sorted(nums))   # [1, 2, 3]
print(nums)           # [3, 1, 2]

list.sort()는 제자리에서 정렬합니다

원래 순서가 더 이상 필요하지 않다면 list.sort()를 사용하십시오. 제자리에서 정렬하고 None을 반환하므로 큰 배열에서 메모리를 절약할 수 있습니다.

nums = [3, 1, 2]
nums.sort()
print(nums)   # [1, 2, 3]

기본 순서는 오름차순입니다

Python은 기본적으로 가장 작은 값부터 가장 큰 값의 순서로 정렬합니다. 숫자는 작은 값에서 큰 값 순으로, 문자열은 문자 단위의 사전 순으로 배치됩니다.

print(sorted(["pear", "apple", "kiwi"]))
# ['apple', 'kiwi', 'pear']

reverse로 뒤집기

reverse=True를 전달하면 가장 큰 값부터 가장 작은 값의 순서로 정렬됩니다. 탐욕적 단계에서 큰 항목부터 처리해야 할 때 적합합니다.

print(sorted([3, 1, 2], reverse=True))
# [3, 2, 1]

key 함수 알아보기

key 인수는 각 항목의 순위를 정하는 방법을 sort에 알려 줍니다. Python은 모든 원소에 key를 호출하고, 반환된 값에 따라 정렬합니다.

words = ["bb", "a", "ccc"]
print(sorted(words, key=len))
# ['a', 'bb', 'ccc']

lambda와 함께 key 사용하기

간단한 lambda를 사용하면 어떤 표현식으로든 한 줄에서 정렬할 수 있습니다. 여기서는 숫자가 0에서 얼마나 떨어져 있는지를 기준으로 정렬합니다.

vals = [-5, 2, -1, 3]
print(sorted(vals, key=lambda x: abs(x)))
# [-1, 2, 3, -5]

필드 기준으로 객체 정렬하기

튜플이나 레코드를 정렬할 때는 중요한 필드를 key로 지정하십시오. 나머지 항목은 별도의 작업 없이 함께 따라옵니다.

people = [("Ann", 30), ("Bob", 25)]
print(sorted(people, key=lambda p: p[1]))
# [('Bob', 25), ('Ann', 30)]

sort는 안정적입니다

Python의 정렬은 안정적입니다. 같은 key를 가진 항목은 원래의 상대적 순서를 유지합니다. 따라서 동률을 안전하게 처리하기 위해 정렬을 여러 단계로 쌓을 수 있습니다.

직접 비교하는 것보다 key가 낫습니다

key는 원소마다 한 번만 계산되므로 큰 입력에서도 빠릅니다. 직접 항목을 서로 바꾸는 대신 key를 사용하십시오.

정렬 비용은 O(n log n)입니다

Python의 정렬은 O(n log n) 시간에 실행됩니다. n이 수십만 정도까지라면 1초 제한 안에서도 충분히 처리할 수 있습니다.

빠른 확인

리스트는 정렬해야 하지만 원래 리스트는 그대로 유지해야 합니다.

정리

sorted()로 데이터를 정렬하거나 제자리에서 sort할 수 있고, reverse로 순서를 뒤집으며, key로 무엇이든 순위를 정할 수 있습니다. 안정적인 정렬은 동률 항목도 깔끔하게 처리합니다. 🎉

자주 묻는 질문

“sorted()와 key 함수” 강의는 무료인가요?

네 — “sorted()와 key 함수” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Coding Interview Prep 강의 전체를 잠금 해제할 수 있습니다. Coding Interview Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

“sorted()와 key 함수”에서 뭘 배우나요?

숫자, 문자열과 튜플을 정렬합니다 브라우저에서 직접 실행하는 실습 코드로 Coding Interview Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Coding Interview Prep을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Coding Interview Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“sorted()와 key 함수” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Coding Interview Prep 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Coding Interview Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. sorted()와 key 함수
  2. 여러 필드로 정렬하기
  3. functools.cmp_to_key로 사용자 지정 순서 만들기
  4. 먼저 정렬하면 해법이 열리는 이유
← Coding Interview Prep(으)로 돌아가기