비균일 배열 사실 2차원 배열에서 모든 행의 길이가 같아야 하는 것은 아니다. 각 행의 길이가 서로 다른 행렬을 비균일 배열(ragged array)라고 한다(활용되는 예는 [연습문제 1.4.32]를 참조하라). 2차원 배열에서 각 행의 길이가 다를 때는 더욱 조심해야 한다. 예를 들어 비균일 배열의 내용을 출력하는 코드는 다음과 같다.
or i in range(len(a)): for j in range(len(a[i])): stdio.write(a[i][j]) stdio.write(' ') stdio.writeln()
이 코드로 파이썬 배열을 얼마나 알고 있는지 테스트할 수 있다. 그러니 시간을 들여 자세히 공부하길 바란다. 이 책에서는 일반적으로 변수 m
과 n
으로 크기가 주어지는 정방행렬이나 일반 행렬을 사용한다. 이 코드에서처럼 len(a[i])
를 사용하고 있다면 배열의 크기가 모두 같지 않을 수 있음을 나타낸다.
다음 코드는 인덱스를 사용하지 않지만 앞 코드와 마찬가지로 일반 행렬이나 비균일 배열에서 제대로 작동한다.
for row in a: for v in row: stdio.write(v) stdio.write(' ') stdio.writeln()