파이썬

[파이썬] Sort와 Sorted 함수의 사용법과 차이

트리스탄1234 2026. 2. 9. 08:17
728x90
반응형

안녕하세요! 2월의 마지막 추위인지 모르겠는데

오늘 날씨가 정말 춥네요.

 

출근 할때 따듯하게 입고 나가세요.

오늘은 지난번에 이어 파이썬 두번째 Sort, Sorted함수의 사용법에 대해서 

 

포스팅을 해보려고 합니다.

그럼 시작해 볼까요?

sort()  sorted() 함수 개요

구분 반환값 적용 대상 동작 방식 원본 데이터 변경 여부
list.sort() None 리스트 객체 제자리(in‑place) 정렬 변경 (원본 리스트 자체가 정렬)
sorted() 새 리스트 시퀀스·이터러블(리스트, 튜플, 문자열, 딕셔너리의 키 등) 새로운 리스트를 만들어 정렬 변경되지 않음 (원본은 그대로)

 

1️ list.sort() 사용법

 

주요 파라미터

  • key: 각 요소에 적용할 함수를 지정합니다. key=str.lower → 대소문자 구분 없이 정렬
  • reverseTrue이면 내림차순, 기본값은 False(오름차순)

2️ sorted() 사용법

 

sorted()의 장점

  • 원본 데이터를 그대로 두고 새 리스트를 반환하므로 함수형 프로그래밍 스타일에 적합합니다.
  • 리스트 외에도 여러 종류의 이터러블을 정렬할 수 있어 범용성이 높습니다.

 

3️ 언제 sort() 를 쓰고 언제 sorted() 를 쓰나요?

상황 권장 함수 이유
원본 리스트를 바로 바꾸어도 괜찮을 때 list.sort() 메모리 사용량 최소 (O(1) 추가 공간)
원본을 유지하면서 정렬 결과만 필요할 때 sorted() 원본 보존다른 로직에 영향을 주지 않음
리스트가 아닌 튜플··딕셔너리·문자열 등을 정렬하고 싶을 때 sorted() 해당 객체들을 직접 정렬할 수 있는 유일한 함수
정렬 결과를 바로 다른 변수에 저장하고 싶을 때 sorted() 반환값이 새 리스트이므로 바로 할당 가능

 

4️ 실전 예제

(1) 복합 조건 정렬 (튜플 리스트)

 

(2) sorted() 로 중복 제거 후 정렬

 

5️ & 주의사항

  • list.sort() 제자리 정렬이라 반환값이 None입니다. 따라서

 

와 같은 실수를 피하세요.

  • sorted()는 항상 새 리스트를 만들므로 큰 데이터셋에서는 추가 메모리를 고려해야 합니다.
  • key 함수는 가능한 경량이어야 성능 저하를 방지할 수 있습니다. : 문자열을 직접 비교하기보다 정규화된 값(str.lower)을 사용하는 것이 좋습니다.

정리를 해보면

  • list.sort() → 원본을 바로 바꾸고 싶을 때, 메모리를 절약하고 싶을 때.
  • sorted() → 원본을 보존하면서 다양한 이터러블을 정렬하고 싶을 때.

그리고 이 2개의 함수릐 차이를 잠깐 살펴 보면요

sort()  sorted() 의 핵심 차이점

구분 list.sort() sorted()
대상 리스트 객체만 리스트·튜플·문자열·딕셔너리··any iterable
반환값 None (제자리 정렬)  리스트를 반환
원본 변경 여부 변경 (리스트 자체가 정렬) 변경되지 않음 (원본 그대로)
메모리 사용 추가 메모리 거의 없음 (O(1)) 정렬된 결과를 담는 새로운 리스트(O(n)) 필요
사용 목적 원본 리스트를 바로 바꾸고 싶을 때, 메모리 절약이 필요할 때 원본을 보존하면서 정렬된 값을 얻고 싶을 때, 리스트가 아닌 다른 이터러블을 정렬하고 싶을 때
주요 파라미터 keyreverse (동일) keyreverse (동일)

 

그럼 오늘 하루도 행복한 하루 되세요.

감기 조심 하시구요. 

 

 

728x90
반응형

'파이썬' 카테고리의 다른 글

[파이썬] 파이썬 index() 함수 사용법  (60) 2026.02.05