Python에서 'N'개의 요소를 가진 증분 튜플(incremental tuple)을 생성해야 하는 경우, 제너레이터 표현식(generator expression)과 tuple 메서드를 활용하면 간단하게 해결할 수 있습니다.
아래 예제를 통해 실제 구현 방법을 살펴보겠습니다.
예제 코드
N = 3
print("'N' 값이 초기화되었습니다")
print("반복해야 하는 횟수는 다음과 같습니다 : ")
print(N)
my_result = tuple((elem, ) * N for elem in range(1, 6))
print("생성된 튜플 시퀀스는 다음과 같습니다 : ")
print(my_result)실행 결과
'N' 값이 초기화되었습니다 반복해야 하는 횟수는 다음과 같습니다 : 3 생성된 튜플 시퀀스는 다음과 같습니다 : ((1, 1, 1), (2, 2, 2), (3, 3, 3), (4, 4, 4), (5, 5, 5))
코드 설명
- 변수 'N'에 반복 횟수인 3을 초기화하고, 콘솔에 출력하여 확인합니다.
- 제너레이터 표현식을 사용해 1부터 5까지의 각 요소(elem)를 N번 반복한 단일 요소 튜플
(elem, ) * N을 생성합니다. tuple()메서드가 이 제너레이터를 순회하며 전체 결과를 하나의 튜플 시퀀스로 변환합니다.- 최종적으로 생성된 튜플 시퀀스가 콘솔에 출력됩니다.
핵심 포인트
이 기법의 핵심은 (elem, ) * N 부분입니다. 여기서 (elem, )은 요소 하나만 담고 있는 튜플이며, 여기에 정수 N을 곱하면 해당 요소가 N번 반복된 새로운 튜플이 만들어집니다. 이러한 방식은 리스트 컴프리헨션 대신 제너레이터 표현식을 사용하기 때문에 메모리 효율성도 뛰어나며, 대량의 데이터를 처리할 때 유용합니다.