더북(TheBook)

3.18.2 제멋대로 큰 행렬 만들기

파이썬에서 제멋대로 큰 다차원 리스트를 만드는 것은 그리 만만치 않다.

운이 좋게도 이 절에서 쉬운 방법을 알아볼 것이다(12장에서 넘파이 패키지 사용법을 알아볼 것이다).

파이썬은 데이터 선언 개념이 없다는 것을 기억하자. 따라서 우리는 파이썬 행렬을 미리 선언할 수 없으며, 반드시 처음부터 구축해야(build) 한다.

다음 코드는 여러분이 풀고자 하는 문제를 리스트 곱하기가 해결하는 것처럼 보일 수도 있다. 1차원 리스트라면 가능하다.

big_list = [0] * 100     # 0으로 초기화된 100개의 항목을 가진 리스트 생성

이 코드는 잘 동작한다. 다음 코드도 실행해 보자.

mat = [[0] * 100] * 200

이 코드는 문법적으로 문제없지만, 원하는 리스트가 만들어지지 않는다. 안쪽 표현식 [0] * 100은 100개의 항목을 가진 리스트를 생성한다. 하지만 이 코드는 동일한 데이터를 200번 반복하여 호출한다. 200개의 별도 행을 만드는 것이 아니라, 같은 행 참조 200개를 만드는 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.