Python에서 n×n 크기의 행렬을 만들어야 할 때, 리스트 컴프리헨션(list comprehension)을 활용하면 간결하고 효율적으로 구현할 수 있습니다. 리스트 컴프리헨션은 반복문과 조건식을 한 줄로 표현할 수 있어 코드가 짧아지고 가독성도 높아집니다.
아래는 n×n 행렬을 생성하는 예제입니다.
예제 코드
N = 4
print("N의 값은 다음과 같습니다:")
print(N)
my_result = [list(range(1 + N * i, 1 + N * (i + 1)))
for i in range(N)]
print("N × N 크기의 행렬은 다음과 같습니다:")
print(my_result)실행 결과
N의 값은 다음과 같습니다: 4 N × N 크기의 행렬은 다음과 같습니다: [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
코드 설명
행렬의 차원을 결정하는 값 N이 미리 정의됩니다.
N의 값이 콘솔에 출력되어 사용자에게 행렬의 크기를 알려줍니다.
리스트 컴프리헨션이
range(N)을 통해 i를 0부터 N-1까지 반복합니다.각 반복마다
range(1 + N * i, 1 + N * (i + 1))를 통해 연속된 숫자 N개가 생성됩니다. 예를 들어 i=0이면 1~4, i=1이면 5~8이 됩니다.생성된 숫자들은
list()함수로 각각 하나의 행(row)인 리스트로 변환됩니다.이렇게 만들어진 행들의 리스트가 최종적으로 변수
my_result에 할당됩니다.완성된 행렬이 콘솔에 출력됩니다.
추가 팁: NumPy 활용하기
더 복잡한 수치 연산이 필요하다면 NumPy 라이브러리를 사용하는 것도 좋은 방법입니다.
import numpy as np N = 4 matrix = np.arange(1, N * N + 1).reshape(N, N) print(matrix)
이 방법은 2차원 배열 형태의 행렬을 생성하므로, 이후 행렬 연산(덧셈, 곱셈, 전치 등)을 수행할 때 훨씬 편리합니다.