728x90
반응형
- sort: 리스트 객체의 메서드이며, 원본을 변경하여 정렬한다.
- sorted: 모든 iterable에 사용할 수 있는 함수로, 정렬된 새로운 리스트를 반환하며 원본 객체는 유지된다.
sort
sort는 리스트 객체에서만 사용할 수 있는 메서드로, 리스트 자체를 정렬한다.
이 메서드는 원본 리스트를 직접 변경하므로, 정렬된 새 리스트를 반환하지 않는다.
주요 파라미터
- key: 정렬 기준을 설정. 기본값은 None이며, 각 요소가 자체 값에 따라 정렬된다.
- reverse: 정렬 순서를 지정. 기본값은 False로 오름차순으로 정렬되며, True로 설정하면 내림차순
# 예시
numbers = [5, 2, 9, 1]
numbers.sort()
print(numbers) # 결과: [1, 2, 5, 9]
sorted
sorted는 모든 iterable 객체(리스트, 튜플, 문자열 등)를 정렬하여 새로운 리스트로 반환하는 함수이다.
원본 객체는 변경되지 않으며, 정렬된 새 리스트를 반환한다.
주요 파라미터
- iterable: 정렬할 객체(리스트, 튜플, 문자열 등)를 입력
- key: sort와 동일하게 정렬 기준을 설정. 기본값은 None
- reverse: 정렬 순서를 지정. 기본값은 False로 오름차순이며, True로 설정하면 내림차순
# 예시
numbers = [5, 2, 9, 1]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # 결과: [1, 2, 5, 9]
print(numbers) # 원본: [5, 2, 9, 1]
sort와 sorted의 차이점
- 사용 대상: sort는 리스트 객체에만 사용할 수 있는 메서드인 반면, sorted는 모든 iterable 객체에 사용할 수 있는 내장 함수
- 원본 객체의 변화: sort는 원본 리스트 자체를 정렬하여 변경하고 반환값이 None이다. 반면 sorted는 정렬된 새로운 리스트를 반환하며, 원본 객체는 변하지 않는다.
- 리턴값: sort는 원본을 변경하여 정렬되므로 None을 반환하고, sorted는 새로운 리스트를 반환한다.
각 함수별 사용 예시 및 결과
sort 예시
# 1. 기본 사용
numbers = [3, 1, 4, 1, 5]
numbers.sort()
print("오름차순 정렬:", numbers) # 결과: [1, 1, 3, 4, 5]
# 2. 내림차순 정렬
numbers.sort(reverse=True)
print("내림차순 정렬:", numbers) # 결과: [5, 4, 3, 1, 1]
# 3. key 파라미터 사용
words = ["banana", "apple", "cherry"]
words.sort(key=len)
print("길이 기준 정렬:", words) # 결과: ['apple', 'banana', 'cherry']
sorted 예시
# 1. 기본 사용
numbers = [3, 1, 4, 1, 5]
sorted_numbers = sorted(numbers)
print("오름차순 정렬:", sorted_numbers) # 결과: [1, 1, 3, 4, 5]
print("원본 리스트:", numbers) # 결과: [3, 1, 4, 1, 5]
# 2. 내림차순 정렬
sorted_numbers = sorted(numbers, reverse=True)
print("내림차순 정렬:", sorted_numbers) # 결과: [5, 4, 3, 1, 1]
# 3. key 파라미터 사용
words = ["banana", "apple", "cherry"]
sorted_words = sorted(words, key=len)
print("길이 기준 정렬:", sorted_words) # 결과: ['apple', 'banana', 'cherry']
차이점에 따른 예시
# 리스트를 직접 변경하고 싶다면 sort를 사용
numbers = [10, 5, 8]
numbers.sort()
print("sort 결과:", numbers) # [5, 8, 10]
# 원본을 유지하면서 정렬된 결과가 필요하다면 sorted를 사용
numbers = [10, 5, 8]
sorted_numbers = sorted(numbers)
print("sorted 결과:", sorted_numbers) # [5, 8, 10]
print("원본 리스트:", numbers) # [10, 5, 8]
728x90
반응형
'책 리뷰 > 파이썬 알고리즘 인터뷰' 카테고리의 다른 글
빅오(Big-O) 표기법 정리 (3) | 2024.11.17 |
---|---|
[프로그래머스-해시] 완주하지 못한 선수 (2) | 2024.11.16 |
[프로그래머스-해시] 전화번호 목록 (2) | 2024.11.14 |
[프로그래머스-해시] 베스트앨범 (1) | 2024.11.13 |
[프로그래머스-해시] 폰켓몬 문제 풀이 (4) | 2024.11.12 |
댓글