반응형
sorted()
함수와 sort()
메서드
sorted()
함수와 sort()
메서드는 파이썬에서 리스트를 정렬하는 두 가지 방법입니다. 둘 다 리스트를 정렬하는 데 사용되지만, 몇 가지 차이점이 있습니다. 이를 각각의 특징과 예제를 통해 설명하겠습니다.
sorted()
함수
- 특징:
- 새로운 리스트 반환:
sorted()
함수는 정렬된 새로운 리스트를 반환합니다. 원래의 리스트는 변경되지 않습니다. - 임의의 반복 가능한 객체 정렬 가능:
sorted()
함수는 리스트뿐만 아니라 튜플, 문자열, 딕셔너리 등 반복 가능한(iterable) 객체를 정렬할 수 있습니다. - 다양한 매개변수 지원:
key
: 정렬 기준을 지정하는 함수reverse
: 정렬 순서를 역순으로 설정 (기본값은False
)
- 새로운 리스트 반환:
- 예제:
# 리스트 정렬
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # 출력: [1, 1, 2, 3, 4, 5, 5, 6, 9]
print(numbers) # 출력: [3, 1, 4, 1, 5, 9, 2, 6, 5] (원래 리스트는 변경되지 않음)
# 문자열 정렬
string = "hello"
sorted_string = sorted(string)
print(sorted_string) # 출력: ['e', 'h', 'l', 'l', 'o']
# 딕셔너리 키 정렬
dictionary = {'b': 1, 'a': 2, 'c': 3}
sorted_keys = sorted(dictionary)
print(sorted_keys) # 출력: ['a', 'b', 'c']
sort()
메서드
- 특징:
- 원래 리스트를 직접 변경:
sort()
메서드는 리스트 객체의 메서드로, 호출 시 원래 리스트를 직접 정렬합니다. 반환값은None
입니다. - 리스트 전용:
sort()
메서드는 리스트에만 사용할 수 있습니다. - 다양한 매개변수 지원:
key
: 정렬 기준을 지정하는 함수reverse
: 정렬 순서를 역순으로 설정 (기본값은False
)
- 원래 리스트를 직접 변경:
- 예제:
# 리스트 정렬
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
numbers.sort()
print(numbers) # 출력: [1, 1, 2, 3, 4, 5, 5, 6, 9] (원래 리스트가 변경됨)
# key 매개변수를 사용한 정렬
people = [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 20}, {'name': 'Charlie', 'age': 30}]
people.sort(key=lambda person: person['age'])
print(people) # 출력: [{'name': 'Bob', 'age': 20}, {'name': 'Alice', 'age': 25}, {'name': 'Charlie', 'age': 30}]
주요 차이점 요약
- 반환값:
sorted()
: 정렬된 새로운 리스트 반환.sort()
: 반환값이 없으며, 원래 리스트를 직접 정렬.
- 사용 대상:
sorted()
: 모든 반복 가능한 객체에 사용 가능.sort()
: 리스트 객체에만 사용 가능.
- 원본 데이터:
sorted()
: 원본 데이터를 변경하지 않음.sort()
: 원본 데이터를 직접 변경.
이 두 방법을 이해하고 상황에 맞게 사용하면 리스트를 보다 효율적으로 정렬할 수 있습니다.
'실버를 위한 코딩 > 파이썬' 카테고리의 다른 글
[파이썬] 튜플(Tuple), 리스트(List)와 비교해서 (1) | 2024.07.01 |
---|---|
[파이썬] `map()` 함수와 `filter()` 함수 (0) | 2024.06.29 |
[파이썬] 람다(lambda) 함수는? (0) | 2024.06.27 |
파이썬의 기본 자료형 7가지 (1) | 2024.06.11 |
[파이썬] 데시멀(Decimal) 타입 사용, 10진 소수점 연산 (0) | 2024.05.30 |