파이썬/Basic

sort와 sorted의 차이점

코샵 2024. 2. 15. 10:55
반응형

파이썬에서 리스트를 정렬하는 작업은 매우 빈번하게 발생합니다. 이를 위해 sort와 sorted 두 가지 함수가 제공되는데, 이들은 유사한 기능을 제공하면서도 중요한 차이점을 가지고 있습니다.

1. sort()

  • 기능: 리스트를 직접 변경하여 정렬합니다.
  • 반환 값: None (리스트 자체를 변경합니다)
my_list = [5, 2, 4, 1, 3]

# 리스트를 직접 정렬
my_list.sort()

print(my_list)  # [1, 2, 3, 4, 5]

2. sorted()

  • 기능: 리스트를 새롭게 만들어 정렬 결과를 반환합니다.
  • 반환 값: 정렬된 새로운 리스트
my_list = [5, 2, 4, 1, 3]

# 새 리스트를 만들어 정렬 결과 반환
sorted_list = sorted(my_list)

print(my_list)  # [5, 2, 4, 1, 3]
print(sorted_list)  # [1, 2, 3, 4, 5]

3. sort와 sorted의 차이점

구분 sort sorted
리스트 변경 직접 변경 리스트 생성
반환 None 정렬된 리스트
메모리 사용 적음 많음
속도 빠름 느림
inplace True False

4. 주의 사항

  • sort 함수는 리스트를 직접 변경하기 때문에 주의해야 합니다.
  • sorted 함수는 새로운 리스트를 만들기 때문에 메모리 사용량이 더 많습니다.
  • 속도는 sort 함수가 sorted 함수보다 빠릅니다.
  • inplace 파라미터는 sort 함수에서만 사용할 수 있으며, 기본값은 True입니다.

5. 어떤 함수를 사용해야 할까?

  • 리스트를 직접 변경하고 싶고 속도가 중요할 때는 sort 함수를 사용합니다.
  • 리스트를 변경하지 않고 정렬 결과만 필요할 때는 sorted 함수를 사용합니다.
  • 메모리 사용량이 중요할 때는 sort 함수를 사용합니다.