더북(TheBook)

비균일 배열 사실 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()

이 코드로 파이썬 배열을 얼마나 알고 있는지 테스트할 수 있다. 그러니 시간을 들여 자세히 공부하길 바란다. 이 책에서는 일반적으로 변수 mn으로 크기가 주어지는 정방행렬이나 일반 행렬을 사용한다. 이 코드에서처럼 len(a[i])를 사용하고 있다면 배열의 크기가 모두 같지 않을 수 있음을 나타낸다.

다음 코드는 인덱스를 사용하지 않지만 앞 코드와 마찬가지로 일반 행렬이나 비균일 배열에서 제대로 작동한다.

for row in a:
   for v in row:
       stdio.write(v)
       stdio.write(' ')
   stdio.writeln()
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.