반응형

파이썬으로 알고리즘 문제들을 풀다보면 sort(), sorted()를 자주 이용하게 되는데 종종 헷갈리는 경우가 있어서 명확히 정리해보고자 이 글을 작성하게 되었습니다.


 sort()는 리스트 메서드이고 sorted()는 파이썬 내장 라이브러리 함수입니다.

 sort()는 원본 리스트를 정렬해주고 반환값은 None입니다.

 sorted()는 원본 리스트에는 영향을 미치지 않고 원본 리스트를 정렬한 새로운 리스트를 반환해줍니다.

 두 함수 모두 기본적으로 오름차순으로 정렬하도록 되어있습니다. 내림차순으로 정렬하고 싶다면 reverse = True를 사용하여 내림차순으로 정렬되도록 해줄 수 있습니다.


 아래는 sort()의 예제코드입니다.

test = [5, 2, 7]
print(test) # [5, 2, 7]

# 오름차순(기본)으로 정렬
test.sort() # test(원본 리스트)를 정렬해줌. test.sort()의 반환 값은 None
print(test.sort()) # None
print(test) # [2, 5, 7]

# 내림차순으로 정렬
test.sort(reverse = True) # test(원본 리스트)를 정렬해줌. 마찬가지로 반환 값은 None
print(test.sort(reverse = True)) # None
print(test) # [7, 5, 2]

아래는 sorted()의 예제코드입니다.

 

test = [5, 2, 7]
print(test) # [5, 2, 7]

# 오름차순(기본)으로 정렬
sorted(test) # test(원본 리스트)에는 영향을 미치지 않고 정렬된 값을 '반환'함
print(sorted(test)) # [2, 5, 7]
# sorted()는 원본 리스트에 영향을 미치지 않기 때문에 test는 변화가 없음
print(test) # [5, 2, 7]

# 내림차순으로 정렬
sorted(test, reverse = True) # test(원본 리스트)에는 영향을 미치지 않고 정렬된 값을 '반환'함
print(sorted(test, reverse = True)) # [7, 5, 2]
# sorted()는 원본 리스트에 영향을 미치지 않기 때문에 test는 변화가 없음
print(test) # [5, 2, 7]

 정리해보면 sort()는 원본 리스트에 영향을 주고 반환값은 None인 함수이고

sorted()는 원본 리스트에는 영향을 주지 않고 정렬된 리스트를 반환해주는 함수입니다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기