이름도 비슷하고 기능도 비슷해서 헷갈리는 함수인 sort()와 sorted(). 공통점과 차이점은 다음과 같다. 그리고 매우 정리가 잘 된 포스트가 있으니 이거 먼저 보는 게 좋을 듯. 아래 내용은 그걸 위주로 해서 내 식대로 정리한 것.
공통점
1) 리스트를 정렬한다.
2) key와 reverse라는 매개변수가 있으며, key의 경우 예컨대 str.lower 이렇게 되어있으면 대소문자 구분없이 정렬하며, reverse의 경우 True로 설정하면 내림차순으로 정렬한다.
차이점
sort()
1) 다음과 같은 꼴로 사용: variable.sort()
2) 제자리 정렬(In-place Sort)라 하며 입력을 출력으로 덮어써 별도의 추가공간을 요구하지 않아 리턴값이 없다. 따라서 x = y.sort()와 같은 방식으로 변수를 지정하면 None을 리턴한다.
3) 리스트에다가만 쓸 수 있다!
sorted()
1) 다음과 같은 꼴로 사용: sorted(variable)
2) 리스트, 튜플, 딕셔너리, 셋(set), 스트링, range()에서 얻을 수 있는 Iterable한 객체에다가도 쓸 수 있다.
3) 그러나 리턴값은 항상 리스트형이다!