호테의 노트에 오신 것을 환영합니다 🙌

Tableau와 Salesforce, Python과 SQL 등 데이터의 전반적인 것들을 다루는 기술 블로그입니다.

Python/Python 기초

.sort() 와 sorted()의 차이

Hote's Note 2025. 6. 23. 10:20

1 .sort()  sorted()의 차이

항목 .sort() sorted()
종류 리스트 전용 메서드 내장 함수
원본 변경 원본 리스트를 직접 정렬 (in-place) 원본은 그대로 두고 새 리스트 생성
반환값 None (아무것도 반환하지 않음) 정렬된 새 리스트 반환
적용 대상 리스트(list)만 가능 리스트, 문자열, 튜플, 딕셔너리 등 모든 반복 가능한 객체 가능
가독성 한 번만 정렬할 때 사용 함수 체이닝 등 다양한 용도에 적합

2.  예제 비교로 쉽게 이해하기

2-1 .sort() 예제

numbers = [3, 1, 4, 2]
numbers.sort()  # 원본이 정렬됨
print(numbers)  # ✅ 출력: [1, 2, 3, 4]

result = numbers.sort()
print(result)   # ❌ 출력: None (리턴값이 없음)
  • .sort()는 리스트 자체를 바꾸고, 아무것도 반환하지 않음
  • 그래서 return numbers.sort() 또는 print(numbers.sort())는 항상 None

2-2. sorted() 예제

numbers = [3, 1, 4, 2]
new_numbers = sorted(numbers)

print(numbers)     # ✅ 출력: [3, 1, 4, 2] (원본 유지)
print(new_numbers) # ✅ 출력: [1, 2, 3, 4] (새 리스트 생성)
  • sorted()는 원본을 그대로 두고 정렬된 새로운 리스트를 반환

3. 언제 어떤 걸 써야 할까?

 

상황추천 방법 이유
원본 리스트를 정렬해도 괜찮다 .sort() 메모리 아끼고 빠름
원본 리스트는 그대로 두고, 정렬된 값이 필요하다 sorted() 데이터 보존 가능
리스트가 아닌 다른 타입 (문자열, 튜플 등)을 정렬하고 싶다 sorted() 범용성 있음
return 문에서 정렬 결과를 반환하고 싶다 sorted() .sort()는 반환값 없음

4. 보너스: key reverse 옵션은 공통

words = ["banana", "apple", "cherry"]

# 길이순으로 정렬
print(sorted(words, key=len))  # ['apple', 'banana', 'cherry']

# 알파벳 역순 정렬
words.sort(reverse=True)
print(words)  # ['cherry', 'banana', 'apple']
  • key=: 어떤 기준으로 정렬할지 지정
  • reverse=True: 내림차순 정렬

'Python > Python 기초' 카테고리의 다른 글

재귀함수 정복하기  (0) 2025.07.02
[Python] 딕셔너리 데이터 프레임 변환하기  (0) 2024.08.23