728x90
반응형
- 개요
시퀀스를 정렬하는데 사용할 수 있는 sort 함수와 sorted 함수의 차이점에 대해서 알아본다
사용하는 시퀀스는 다음과 같다
humans = ["Kim", "Park", "Choi", "Kwon", "Han"]
1) sort 함수
print(f"Before sort() : {humans.sort()} / After sort() : {humans}")
print(f"Before sort() : {humans.sort(reverse=True)} / After sort() : {humans}")
print(f"Before sort() : {humans.sort(key=len)} / After sort() : {humans}")
print(f"Before sort() : {humans.sort(key=lambda x : x[-1])} / After sort() : {humans}")
sort 함수는 시퀀스로부터 호출한다
sort 함수는 정렬을 수행하되, 원본 객체를 직접 변경하므로 원본이 수정된다
코드는 위와 같이 구성하였다
- 원본 / sort 함수 호출 이후의 원본
- 원본 / sort 함수 호출 이후의 원본(역순으로 정렬)
- 원본 / sort 함수 호출 이후의 원본(문자열의 길이 순서로 정렬)
- 원본 / sort 함수 호출 이후의 원본(문자열의 마지막 알파벳 순서로 정렬)

실행해보면 원본이 수정되므로 원본은 모두 None으로 출력되는 것을 확인할 수 있다
sort 함수가 호출되어 수정한 이후로는 수정된 원본이 출력되는 것을 확인할 수 있다
2) sorted 함수
print(f"Use sorted() : {sorted(humans)}")
print(f"Use sorted() : {sorted(humans, reverse=True)}")
print(f"Use sorted() : {sorted(humans, key=len)}")
print(f"Use sorted() : {sorted(humans, key=lambda x : x[-1])}")
print(humans)
sorted 함수는 독립적으로 호출할 수 있다
sorted 함수는 sort 함수와는 다르게, 정렬을 수행하고 새로운 객체를 반환한다
따라서 원본을 수정하지 않는다
코드는 위와 같이 구성하였다
- sorted 함수 호출
- sorted 함수 호출(역순으로 정렬)
- sorted 함수 호출(문자열의 길이 순서로 정렬)
- sorted 함수 호출(문자열의 마직막 알파벳 순서로 정렬)
- 원본 출력

실행 결과는 위와 같다
sorted 함수를 통해 정렬된 객체가 반환되어 원본에는 영향이 없음을 확인할 수 있다
728x90
반응형
'Python > 파이썬 심화' 카테고리의 다른 글
| 파이썬 시퀀스 (7) (0) | 2025.08.12 |
|---|---|
| 파이썬 시퀀스 (6) (0) | 2025.08.12 |
| 파이썬 시퀀스 (4) (0) | 2025.08.07 |
| 파이썬 시퀀스 (3) (0) | 2025.08.05 |
| 파이썬 시퀀스 (2) (0) | 2025.08.05 |