튜플 안에 포함된 여러 리스트를 정렬해야 하는 경우, tuple 메서드, sorted 메서드, 그리고 제너레이터 표현식을 함께 사용하면 간단하게 해결할 수 있습니다.
sorted 메서드는 리스트의 요소들을 오름차순으로 정렬하는 파이썬 내장 함수로, 정렬된 새로운 리스트를 반환합니다.
제너레이터는 반복자(iterator)를 손쉽게 생성하는 방법입니다. 제너레이터는 내부적으로 __iter__()와 __next__() 메서드가 구현된 클래스를 자동으로 만들어 주며, 내부 상태를 추적하고 더 이상 반환할 값이 없을 때 StopIteration 예외를 발생시킵니다.
tuple 메서드는 반복 가능한(iterable) 객체를 인수로 받아 해당 객체를 튜플 타입으로 변환합니다.
리스트는 서로 다른 타입의 값을(즉, 정수, 실수, 문자열 등 어떤 데이터 타입이든) 하나의 자료구조에 저장할 수 있습니다.
예제
my_tuple = ([4, 55, 100], [44, 55, 67], [7, 86, 0])
print("리스트로 이루어진 튜플 : ")
print(my_tuple)
my_result = tuple((sorted(sub) for sub in my_tuple))
print("정렬 후의 리스트 튜플 : ")
print(my_result)출력 결과
리스트로 이루어진 튜플 : ([4, 55, 100], [44, 55, 67], [7, 86, 0]) 정렬 후의 리스트 튜플 : ([4, 55, 100], [44, 55, 67], [0, 7, 86])
코드 설명
- 리스트들로 구성된 튜플을 생성한 뒤 콘솔에 출력합니다.
- 제너레이터 표현식을 사용해 튜플의 각 리스트를 순회하면서
sorted메서드로 정렬합니다. - 정렬된 결과물을
tuple메서드를 통해 다시 튜플 형태로 변환합니다. - 이 모든 과정은 하나의 제너레이터 표현식 안에서 처리되며, 그 결과가 변수에 할당됩니다.
- 마지막으로 정렬된 결과를 콘솔에 출력합니다.