Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 튜플 내 리스트 정렬하기


튜플 안에 포함된 여러 리스트를 정렬해야 하는 경우, 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 메서드를 통해 다시 튜플 형태로 변환합니다.
  • 이 모든 과정은 하나의 제너레이터 표현식 안에서 처리되며, 그 결과가 변수에 할당됩니다.
  • 마지막으로 정렬된 결과를 콘솔에 출력합니다.