Python의 sort() 메소드는 리스트 형식의 데이터를 정렬하는데 사용됩니다. sort() 메소드는 리스트 내의 요소를 기본적으로 오름차순으로 정렬하며, 내림차순으로 정렬하려면 reverse=True 옵션을 추가하면 됩니다.
1. 리스트 정렬
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# 오름차순으로 정렬
numbers.sort()
print(numbers) # 출력 결과: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
# 내림차순으로 정렬
numbers.sort(reverse=True)
print(numbers) # 출력 결과: [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
sort() 메소드는 원래 리스트를 수정하며, 새로운 리스트를 반환하지 않습니다.
또한 sort() 메소드는 기본적으로 숫자를 비롯한 대부분의 데이터 유형에 대해 작동하지만, 서로 다른 데이터 유형이 섞여있는 경우 오류가 발생할 수 있습니다. 이 경우 TypeError가 발생합니다.
mixed_list = [3, 'apple', 4, 'banana', 1]
mixed_list.sort() # TypeError 발생
따라서 sort() 메소드를 사용할 때는 리스트 내의 모든 요소가 같은 데이터 유형이어야 합니다.
2. 딕셔너리 (dictionary) 정렬
딕셔너리(Dictionary)는 파이썬에서 가장 많이 사용되는 데이터 구조 중 하나입니다. 딕셔너리는 키-값(key-value) 쌍으로 구성되며, 각 키(key)는 유일해야 합니다. 따라서 딕셔너리에서 값을 찾을 때는 해당 값에 대한 키를 사용합니다.
딕셔너리의 sort() 메소드는 기본적으로 키(key)를 기준으로 정렬합니다. 하지만 딕셔너리에서는 items() 메소드를 사용하여 딕셔너리의 각 키-값 쌍을 튜플(tuple) 형태로 반환할 수 있습니다. 이를 이용하여 딕셔너리를 정렬할 수 있습니다.
아래는 딕셔너리를 정렬하는 예시 코드입니다.
fruits = {'banana': 3, 'apple': 2, 'kiwi': 5, 'orange': 1}
# 딕셔너리의 각 키-값 쌍을 튜플로 변환하여 리스트에 저장
fruits_list = list(fruits.items())
# 값(value)을 기준으로 정렬
fruits_list.sort(key=lambda x: x[1])
print(fruits_list) # 출력 결과: [('orange', 1), ('apple', 2), ('banana', 3), ('kiwi', 5)]
# 키(key)를 기준으로 정렬
fruits_list.sort(key=lambda x: x[0])
print(fruits_list) # 출력 결과: [('apple', 2), ('banana', 3), ('kiwi', 5), ('orange', 1)]
위 코드에서 items() 메소드는 딕셔너리의 각 키-값 쌍을 튜플로 변환하며, list() 메소드는 이를 리스트 형태로 변환합니다. 그리고 sort() 메소드는 먼저 정렬 기준을 설정하기 위해 key 인자를 사용하여 lambda 함수를 정의합니다. 이 lambda 함수는 각 튜플의 첫 번째 요소인 키(key) 또는 두 번째 요소인 값(value)를 반환하게 됩니다.
딕셔너리에서 특정 키-값 쌍을 찾는 경우 dict.get() 메소드를 사용할 수 있습니다. dict.get(key[, default]) 메소드는 딕셔너리에서 키(key)에 해당하는 값을 반환합니다. 만약 키(key)가 존재하지 않는다면 default 값이 반환됩니다.
'라이브러리' 카테고리의 다른 글
[파이썬] format() 함수 사용법 정리 (0) | 2023.03.13 |
---|---|
[파이썬] Faker로 테스트 더미 데이터 생성 (한글 설정) (0) | 2023.03.13 |
[파이썬] split() 함수 사용법 (0) | 2023.03.13 |
[파이썬] Pydantic 사용법 (0) | 2023.03.13 |
[파이썬] dict 정렬하는 3가지 방법 (0) | 2023.03.13 |