본문 바로가기
강좌/파이썬

[파이썬] 정렬 (sort, sorted)

by Moons0827 2024. 1. 21.
반응형

파이썬에 내장 함수는 유용한 것들이 많이 있습니다.

정렬 기능은 프로그램을 작성할 때 매우 유용하고 꼭 필요한 기능이죠.

이 때, 사용되는 파이썬 내장 함수가 sort, sorted 입니다.

둘은 비슷하지만 살짝 다릅니다.


1. sort()

먼저 sort 메소드를 알아봅시다.

sort 메소드는 기존의 리스트 자체를 정렬합니다.(오름차순)

한 번 해볼까요?

my_list 라는 임의의 리스트를 만들어 보겠습니다.

my_list = [5, 3, 4, 9, 1]
#임의의 리스트

my_list.sort()
#리스트 정렬(오름차순)

print(my_list)
#(리스트 출력)

[1, 3, 4, 5, 9] 로 출력되는 것을 볼 수 있습니다.

만약 내림차순으로 하고 싶으면 ()에 reverse=True를 넣으면 됩니다.

my_list = [5, 3, 4, 9, 1]
#임의의 리스트

my_list.sort(reverse=True)
#리스트 정렬(내림차순)

print(my_list)
#(리스트 출력)

그러면 [9, 5, 4, 3, 1] 로 출력되는 것을 볼 수 있습니다.


2. sorted

sorted 함수는 정렬된 새로운 리스트를 반환합니다. 즉, 복사본을  반환하고 기존의 리스트는 영향을 받지 않습니다.

한 번 해볼까요?

역시 아까 임의의 my_list를 사용해보겠습니다.

my_list = [5, 3, 4, 9, 1]
#임의의 리스트

print(sorted(my_list))
#리스트 정리 및 출력(오름차순)

[1, 3, 4, 5, 9] 로 출력되는 것을 볼 수 있습니다.

내림차순으로 정렬하고 싶으면 마찬가지로 ()에 reverse=True를 넣어주면 됩니다.

my_list = [5, 3, 4, 9, 1]
#임의의 리스트

print(sorted(my_list, reverse=True))
#리스트 정리 및 출력(오름차순)

만약에 아까 sort 메소드에 sorted함수로 바꿔 넣으면 어떻게 될까요?

sorted 함수는 기존 리스트에 영향을 주지 않기 때문에 명령의 모순이 생기게 되어 오류가 발생합니다.

반응형

댓글