그러나 1차원 배열과 마찬가지로 이 책에서는 앞으로 예제용 라이브러리 중 stdarray
모듈에서 제공하는 stdarray.create2D(m, n, 0.0)
함수를 이용해 배열을 생성할 것이다. 함수명으로 2차원 배열임을 쉽게 알 수 있다.
인덱싱 2차원 배열 a[][]
에 대해 a[i]
는 i
행을 참조한다. 예를 들어 a[][]
가 [[18, 19, 20]
, [21 22, 23]]
배열이라면 a[1]
은 [21, 22, 23]
을 나타낸다. 2차원 배열에서 특정 요소를 참조할 때 a[i][j]
구문은 i
행 j
열에 있는 요소를 참조한다. 앞의 a[][]
배열에서 a[1][0]
은 21
이다. 2차원 배열에서 모든 요소에 접근하려면 내포된 for
루프를 사용한다. 예를 들어 다음 코드는 m x n
크기의 a[][]
배열을 화면 한 줄에 한 행씩 모두 출력한다.
for i in range(m): for j in range(n): stdio.write(a[i][j]) stdio.write(' ') stdio.writeln()
다음 코드는 인덱스를 사용하지 않고 앞 코드와 똑같은 작업을 수행한다.
for row in a: for v in row: stdio.write(v) stdio.write(' ') stdio.writeln()