더북(TheBook)

for i in range(200) 표현식은 파이썬이 위 행을 200번 생성하면서 추가하게 해 준다.

행렬_이름 = [[초깃값] * 열_개수 for 행_번호 in range(행_개수)]

이 문법에서 ‘초깃값’은 각 항목에 대입할 초깃값을 의미하며, ‘열_개수’와 ‘행_개수’는 각각 열의 개수와 행의 개수를 의미한다.

‘행_번호’가 중요하지 않고 다시 사용할 필요가 없다면 기본적으로 변수나 함수 이름을 지을 때 명사를 구분하기 위한 용도로 사용하는 언더스코어(_)로 교체할 수 있다. 예를 들어 30×25 행렬을 선언하려면 다음과 같이 코드를 작성할 수 있다.

mat2 = [ [0] * 25 for _ in range(30) ]

이 기법은 더 높은 차원의 행렬을 만들 때도 사용할 수 있다. 하나의 깊이가 추가될 때, 한 레벨의 리스트 함축이 추가되면 된다. 다음 코드는 30×20×25 3차원 리스트를 만든다.

mat2 = [[ [0] * 25 for _ in range(20) ]
                   for _ in range(30) ]

다음 코드는 10×10×10×10 4차원 리스트를 만든다.

mat2 = [[[ [0] * 10 for _ in range(10) ]
                    for _ in range(10) ]
                    for _ in range(10) ]

여러분은 여전히 더 높은 차원의 행렬을 만들 수 있다. 하지만 차원이 증가될수록 코드의 복잡도는 빠르게 증가한다는 것을 잊지 말자.

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