[파이썬] 튜플의 다차원 배열
파이썬은 다양한 자료형을 제공하며, 그 중 튜플(tuple)은 여러 값을 저장하는 자료형입니다. 튜플은 리스트와 유사하지만, 한번 생성되면 변경할 수 없다는 특징을 가지고 있습니다. 이러한 튜플을 다차원 배열로 사용하는 방법에 대해 알아보겠습니다.
1. 튜플 생성하기
튜플을 생성하는 가장 간단한 방법은 괄호를 사용하여 여러 값을 묶는 것입니다. 예시 코드를 통해 확인해봅시다.
# 1차원 튜플 생성
tup1 = (1, 2, 3)
print(tup1) # (1, 2, 3)
# 2차원 튜플 생성
tup2 = ((1, 2), (3, 4), (5, 6))
print(tup2) # ((1, 2), (3, 4), (5, 6))
# 3차원 튜플 생성
tup3 = (((1, 2), (3, 4)), ((5, 6), (7, 8)), ((9, 10), (11, 12)))
print(tup3) # (((1, 2), (3, 4)), ((5, 6), (7, 8)), ((9, 10), (11, 12)))
2. 튜플의 원소 접근하기
튜플의 다차원 배열에서 원소에 접근하는 방법은 인덱싱(indexing)과 슬라이싱(slicing)을 활용할 수 있습니다. 예시 코드를 통해 확인해봅시다.
# 1차원 튜플의 원소 접근
tup1 = (1, 2, 3)
print(tup1[0]) # 1
print(tup1[1]) # 2
# 2차원 튜플의 원소 접근
tup2 = ((1, 2), (3, 4), (5, 6))
print(tup2[0]) # (1, 2)
print(tup2[1][0]) # 3
# 3차원 튜플의 원소 접근
tup3 = (((1, 2), (3, 4)), ((5, 6), (7, 8)), ((9, 10), (11, 12)))
print(tup3[0][0][1]) # 2
print(tup3[2][1][0]) # 11
3. 튜플의 특성 유지하기
튜플은 생성된 이후에 변경할 수 없는 특성을 가지고 있습니다. 따라서, 다차원 배열의 원소를 수정하거나 삭제하는 것은 불가능합니다. 하지만, 원소에 접근하여 값을 읽는 것은 가능합니다.
# 2차원 튜플의 원소 값 읽기
tup2 = ((1, 2), (3, 4), (5, 6))
print(tup2[0][0]) # 1
# 2차원 튜플의 원소 값 변경 (불가능)
tup2[0][0] = 10 # TypeError 발생
# 2차원 튜플의 원소 삭제 (불가능)
del tup2[0][0] # TypeError 발생
4. 튜플을 사용한 다차원 배열 활용
튜플을 다차원 배열로 사용하는 주요한 장점 중 하나는 불변성입니다. 튜플을 사용하여 데이터를 저장하면, 프로그램의 일관성과 안정성이 유지될 수 있습니다. 특히, 튜플을 활용한 다차원 배열은 데이터의 구조화와 관리를 용이하게 만들어줍니다.
예시 코드에서는 행렬의 덧셈 연산을 통해 튜플을 사용한 다차원 배열 활용을 보여줍니다.
# 행렬 덧셈 연산을 통한 다차원 배열 활용
def matrix_addition(matrix1, matrix2):
result = []
for i in range(len(matrix1)):
row = []
for j in range(len(matrix1[i])):
row.append(matrix1[i][j] + matrix2[i][j])
result.append(tuple(row))
return tuple(result)
matrix1 = ((1, 2), (3, 4))
matrix2 = ((5, 6), (7, 8))
matrix_sum = matrix_addition(matrix1, matrix2)
print(matrix_sum) # ((6, 8), (10, 12))
결론
파이썬의 튜플을 다차원 배열로 사용하여 데이터를 표현하고 관리하는 방법을 알아보았습니다. 튜플은 불변성을 가지고 있기 때문에 데이터의 일관성과 안정성을 유지할 수 있습니다. 튜플을 활용한 다차원 배열은 데이터의 구조화와 가독성을 높여주며, 행렬 등의 연산에도 활용할 수 있습니다.