개요
튜플로 구성된 리스트가 주어졌을 때, 원하는 키(인덱스)를 기준으로 오름차순으로 정렬하는 방법을 알아보겠습니다. 이 작업은 파이썬의 내장 함수인 sorted()를 활용하면 간단하게 해결할 수 있습니다. key 매개변수에 정렬 기준이 될 인덱스 위치의 값을 반환하는 함수를 전달하면, 해당 요소를 기준으로 튜플들이 정렬됩니다.
예시
입력: A = [(2, 55), (1, 20), (4, 40), (2, 30)]
k = 0
출력: [(1, 20), (2, 30), (2, 55), (4, 40)]설명
위 예시는 0번째 인덱스, 즉 각 튜플의 첫 번째 요소를 키로 삼아 오름차순으로 정렬한 결과입니다. 첫 번째 값이 같은 경우에는 순서가 유지되며, 전체적으로 작은 값부터 큰 값 순으로 배치됩니다.
알고리즘
1단계: 정렬 기준이 될 키(인덱스) 값을 결정합니다.
2단계: 내장 함수 sorted()를 호출하면서 key 매개변수에
해당 인덱스의 값을 반환하는 함수를 지정하여 정렬합니다.
3단계: 정렬된 리스트를 화면에 출력합니다.예제 코드
# 튜플 리스트를 지정된 키 기준으로
# 오름차순 정렬하는 파이썬 프로그램
# 정렬 기준이 되는 키 값 반환
def data(n):
return n[k]
# 튜플 리스트를 정렬하는 함수
def tuplesort(tup):
# 사용자가 정의한 함수 data를
# key 매개변수로 전달
return sorted(tup, key=data)
# 실행 코드
a = [(230, 456, 120), (205, 414, 39), (89, 410, 213)]
k = int(input("정렬 기준 인덱스를 입력하세요 ::> "))
print("정렬 결과:")
print(tuplesort(a))실행 결과
정렬 기준 인덱스를 입력하세요 ::> 2 정렬 결과: [(205, 414, 39), (230, 456, 120), (89, 410, 213)]
위 실행 결과에서 인덱스 2, 즉 각 튜플의 세 번째 요소(120, 39, 213)를 기준으로 정렬했기 때문에 39 → 120 → 213 순서로 튜플이 재배치된 것을 확인할 수 있습니다. 이처럼 k 값만 변경하면 어떤 위치의 요소든 자유롭게 정렬 기준으로 사용할 수 있습니다.