본문 바로가기
Python/Python FAQ

Python 2차원 배열을 정의하는 방법은 무엇인가요?, How to define a two-dimensional array?

by 베타코드 2023. 6. 25.
반응형

질문


나는 이렇게 초기화되지 않은 길이를 가진 2차원 배열을 정의하고 싶습니다:

Matrix = [][]

하지만 이것은 오류를 발생시킵니다:

IndexError: list index out of range


답변


기술적으로 초기화되지 않은 배열을 색인화하려고합니다. 항목을 추가하기 전에 먼저 외부 목록을 목록으로 초기화해야합니다. Python은 이를 "목록 내포"라고합니다.

# 5 개의 목록을 포함하는 목록을 만들어 각각 8 개의 항목이 모두 0으로 설정됩니다.
w, h = 8, 5
Matrix = [[0 for x in range(w)] for y in range(h)] 

# 이제 목록에 항목을 추가 할 수 있습니다:

Matrix[0][0] = 1
Matrix[6][0] = 3 # 오류! 범위 ...
Matrix[0][6] = 3 # 유효한

행렬이 "y" 주소 주요임을 유의하십시오. 다시 말해, "y 인덱스"가 "x 인덱스"보다 먼저 나옵니다.

print Matrix[0][0] # 1을 인쇄합니다.
x, y = 0, 6 
print Matrix[x][y] # 인덱싱에 주의하세요! 3을 인쇄합니다. 

원하는대로 이름을 지정할 수 있지만, 내부 및 외부 목록 모두에 "x"를 사용하고 비정사각형 행렬을 원하는 경우 인덱싱으로 인해 발생할 수있는 혼란을 피하기 위해 이렇게 봅니다.

반응형

댓글