파이썬 리스트를 상속하여 다차원 자료구조 만들기
파이썬의 기본 리스트는 다차원 배열처럼 사용할 수 있지만, 이를 더 직관적이고 편리하게 다루기 위해 리스트를 상속받아 다차원 자료구조를 구현할 수 있습니다. 다차원 배열은 행렬처럼 데이터를 행과 열로 저장하고 처리하는데 유용하며, 특히 2차원 이상의 데이터를 다룰 때 활용도가 높습니다.
리스트를 상속하여 다차원 자료구조를 구현하면 사용자 정의 메서드를 추가하여 행렬 연산, 행렬 출력 등의 기능을 쉽게 구현할 수 있습니다.
다차원 자료구조 구현 예제
다음은 파이썬 리스트를 상속받아 2차원 배열(행렬)처럼 사용할 수 있는 클래스를 정의한 예제입니다. 이 클래스에서는 기본 리스트 연산을 확장하고, __getitem__
과 __setitem__
을 오버라이딩하여 더 직관적으로 접근할 수 있도록 합니다.
class Matrix(list):
def __init__(self, rows, cols, default=0):
super().__init__([[default] * cols for _ in range(rows)])
self.rows = rows
self.cols = cols
def get_value(self, row, col):
return self[row][col]
def set_value(self, row, col, value):
self[row][col] = value
def display(self):
for row in range(self.rows):
print(" ".join(map(str, self[row])))
# 예제 사용
matrix = Matrix(3, 4, default=0) # 3x4 행렬 생성 (모든 값 0으로 초기화)
matrix.set_value(0, 1, 5) # (0, 1) 위치에 5 설정
matrix.set_value(2, 3, 8) # (2, 3) 위치에 8 설정
print("행렬 출력:")
matrix.display()
코드 설명
- 초기화:
Matrix
클래스는 파이썬의 기본 리스트를 상속받아rows
와cols
크기만큼의 2차원 배열을 생성합니다.default
파라미터를 통해 초기값을 설정할 수 있습니다. - 값 조회 및 설정:
get_value
와set_value
메서드는row
와col
을 통해 요소에 접근하고 값을 설정할 수 있게 합니다. - 행렬 출력:
display
메서드는 전체 행렬을 보기 좋은 형태로 출력합니다.
출력 결과
행렬 출력:
0 5 0 0
0 0 0 0
0 0 0 8
확장 가능성
이 다차원 배열 자료구조는 필요에 따라 추가 연산을 정의할 수 있어 행렬 덧셈, 곱셈 등의 수학적 연산을 쉽게 구현할 수 있습니다. 이를 통해 이미지 처리, 데이터 분석, 과학 계산과 같은 작업에서도 효과적으로 사용할 수 있습니다.
'다차원 자료구조 생성 및 방법' 카테고리의 다른 글
[다차원 자료구조 생성 및 방법] 다차원 자료구조 기반 워드클라우드 모델 (0) | 2024.10.30 |
---|---|
[다차원 자료구조 생성 및 방법] 딕셔너리 상속 다차원 자료구조 2 (12) | 2024.10.25 |
[다차원 자료구조 생성 및 방법] 다차원 자료구조 표현 도구 텐서(Tensor) (1) | 2024.10.22 |
[다차원 자료구조 생성 및 방법] 네임드 튜플 `collections` 모듈 자료구조 (11) | 2024.10.21 |
[다차원 자료구조 생성 및 방법] 파이썬에서의 벡터 공간 (4) | 2024.10.19 |