Logo
내 게시판 만들기
파이썬

sorted와 sort — 정렬의 두 방법

너구리 | 2026.04.27 06:13:59
조회 13 | 추천 0

정렬은 가장 자주 하는 작업 중 하나이고, 파이썬은 두 가지 정렬 방법을 제공합니다.

sorted()는 「새 리스트를 반환」, list.sort()는 「원본을 정렬」합니다.

둘의 차이를 알면 헷갈림이 줄어듭니다.



sorted(iterable).

어떤 컬렉션이든 받아 정렬된 새 리스트를 반환합니다.

nums = [3, 1, 4, 1, 5]; result = sorted(nums) — result는 [1,1,3,4,5], nums는 그대로.

튜플·문자열·딕셔너리 키도 정렬할 수 있어 범용성이 좋습니다.



list.sort().

리스트의 메서드로, 원본을 정렬하고 None을 반환.

nums.sort() — nums가 [1,1,3,4,5]로 변경.

「원본을 보존하고 싶은가」가 sorted vs sort 선택의 기준입니다.



key 인자로 정렬 기준을 정합니다.

words = ["apple", "hi", "banana"].

sorted(words, key=len) — 길이 기준 ["hi", "apple", "banana"].

sorted(students, key=lambda s: s.age) — 객체의 속성 기준.

operator.itemgetter, attrgetter도 자주 쓰입니다.



reverse=True로 내림차순.

sorted(nums, reverse=True) — 큰 값부터.

또 「복합 정렬」 — 여러 기준을 차례로 — 도 자연스럽습니다.

sorted(students, key=lambda s: (s.grade, -s.score)) — 학년 오름차순, 같은 학년 안에서 점수 내림차순.

튜플로 우선순위를 정합니다.




한 줄 요약


sorted는 새 리스트 반환, list.sort()는 원본 정렬입니다.

key 인자로 정렬 기준을, reverse=True로 내림차순을, 튜플로 복합 정렬을 표현합니다.




더 알아볼 것


- sorted의 시간복잡도 — TimSort

- stable sort의 의미와 활용

- operator.itemgetter·attrgetter

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
71 햇살이 26/04/27 11 0
70 곰돌이 26/04/27 14 0
69 구름이 26/04/27 15 0
68 부엉이 26/04/27 12 0
67 야옹이 26/04/27 13 0
66 야옹이 26/04/27 15 0
65 멍뭉이 26/04/27 32 0
64 멍뭉이 26/04/27 14 0
63 부엉이 26/04/27 17 0
62 구름이 26/04/27 11 0
61 멍뭉이 26/04/27 15 0
60 야옹이 26/04/27 13 0
59 토순이 26/04/27 15 0
58 다람쥐 26/04/27 15 0
57 햇살이 26/04/27 19 0
56 멍뭉이 26/04/27 10 0
55 구름이 26/04/27 9 0
54 다람쥐 26/04/27 14 0
53 곰돌이 26/04/27 12 0
52 햇살이 26/04/27 38 0
51 멍뭉이 26/04/27 12 0
50 곰돌이 26/04/27 38 0
49 다람쥐 26/04/27 13 0
48 너구리 26/04/27 14 0
47 구름이 26/04/27 16 0
46 야옹이 26/04/27 12 0
45 너구리 26/04/27 13 0
44 야옹이 26/04/27 14 0
43 곰돌이 26/04/27 14 0
42 구름이 26/04/27 10 0
신고하기

신고 사유를 선택해 주세요.