Python에서 튜플(tuple)을 특정 값으로 초기화해야 할 때는 tuple() 메서드와 * 연산자를 함께 활용하면 간단하게 해결할 수 있습니다.
tuple() 메서드는 인자로 전달된 이터러블(iterable) 객체를 튜플 타입으로 변환해 줍니다. 반면 * 연산자는 일반적으로 두 값의 곱을 계산할 때 사용되지만, 하나의 값을 여러 번 반복하여 리스트를 생성하는 용도로도 활용할 수 있습니다.
튜플은 한 번 생성되면 내부 요소를 변경할 수 없는 불변(immutable) 자료형이기 때문에, 먼저 리스트로 값을 구성한 뒤 마지막에 튜플로 변환하는 방식이 일반적으로 사용됩니다.
예제 코드
N = 6
print("N의 초기값 : " + str(N))
default_val = 2
print("기본값 : " + str(default_val))
indx = 3
print("인덱스 값 : " + str(indx))
val_to_add = 6
print("추가할 값 : " + str(val_to_add))
my_result = [default_val] * N
my_result[indx] = val_to_add
my_result = tuple(my_result)
print("생성된 튜플 : ")
print(my_result)실행 결과
N의 초기값 : 6 기본값 : 2 인덱스 값 : 3 추가할 값 : 6 생성된 튜플 : (2, 2, 2, 6, 2, 2)
코드 설명
- 튜플의 길이를 결정하는 N, 기본값 default_val, 값을 변경할 위치 indx, 그리고 삽입할 값 val_to_add를 각각 초기화하고 콘솔에 출력합니다.
[default_val] * N을 통해 기본값이 N번 반복된 리스트를 생성하고 변수에 할당합니다.- 생성된 리스트에서 지정한 인덱스(
indx) 위치에 추가할 값을 대입하여 해당 요소만 변경합니다. tuple()메서드를 사용해 리스트를 튜플로 변환한 뒤 다시 변수에 저장합니다.- 최종적으로 생성된 튜플을 콘솔에 출력합니다.
실행 결과를 보면 인덱스 3의 요소만 6으로 변경되고 나머지 요소는 모두 기본값 2로 채워진 것을 확인할 수 있습니다. 이처럼 리스트의 반복 연산과 tuple() 변환을 조합하면 원하는 형태의 튜플을 손쉽게 초기화할 수 있습니다.