[파이썬] 튜플의 다차원 배열

파이썬은 다양한 자료형을 제공하며, 그 중 튜플(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))

결론

파이썬의 튜플을 다차원 배열로 사용하여 데이터를 표현하고 관리하는 방법을 알아보았습니다. 튜플은 불변성을 가지고 있기 때문에 데이터의 일관성과 안정성을 유지할 수 있습니다. 튜플을 활용한 다차원 배열은 데이터의 구조화와 가독성을 높여주며, 행렬 등의 연산에도 활용할 수 있습니다.