파이썬 리스트 정렬할 때 마다 sort, sorted가 헷갈리더라구요!
이참에 한번 정리하면 좋지 않을까 해서 글을 써봅니다.
기존의 리스트를 정렬한 순서로 업데이트하는 구조입니다.
Call by reference처럼 리스트 그 자체를 바꾸게 됩니다.
l1 = [10,3,6,2,1]
l1.sort
> None #l1.sort를 하면 어떤 값도 띄지 않고 None이 나옴
l1
> [1,2,3,6,10] #l1을 해야 정렬된 리스트를 반환시킴
정렬된 리스트를 새롭게 생성해야 합니다.
기존의 리스트는 유지되면 정렬된 리스트를 새로운 변수에 할당시킬 수 있습니다.
sorted([10,3,6,2,1])
> [1,2,3,6,10]
sorted(l1)과 l1를 출력했을 때, sorted(l1)은 정렬된 값이 나오는 반면 l1은 정렬되기 전 리스트인 것을 알 수 있습니다.
l1 = [10,3,6,2,1]
sorted(l1)
> [1,2,3,6,10]
l1
> [10,3,6,2,1]
이처럼 sorted는 sort와 달리 기존 리스트에 업데이트 하는 형식이 아님을 볼 수 있습니다!!