Python Basic Syntax (파이썬 기초 문법)/Data Structures (자료구조)

Matrix Control (행렬 조작법)

영끼끼 2025. 2. 16. 21:03

✅ Matrix Control (행렬 조작법)

 

2차원 리스트(2D List)는 행(Row)과 열(Column)으로 구성된 리스트로, 표 형태의 데이터를 저장하는 데 사용됩니다.
반복문으로 쉽게 순회할 수 있으며, 리스트 컴프리헨션을 활용하면 간결하게 생성 가능합니다.
전치(Transpose)를 활용하면 행과 열을 변경할 수 있으며, zip() 또는 numpy를 이용하면 더욱 효율적입니다.

 

 

✅ 행렬 순회 방법

 

# 행 기준 순회
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# 각 행을 출력
for row in matrix:
    print(row)
# 출력:
# [1, 2, 3]
# [4, 5, 6]
# [7, 8, 9]

 

#행,열 순회
for row in matrix:
    for col in row:
        print(col, end=" ")
    print()
# 출력:
# 1 2 3
# 4 5 6
# 7 8 9

 

#인덱스를 이용한 행렬 순회

for i in range(len(matrix)):  # 행 인덱스
    for j in range(len(matrix[i])):  # 열 인덱스
        print(f"matrix[{i}][{j}] = {matrix[i][j]}")
# 출력:
# matrix[0][0] = 1
# matrix[0][1] = 2
# matrix[0][2] = 3
# matrix[1][0] = 4
# matrix[1][1] = 5
# matrix[1][2] = 6
# matrix[2][0] = 7
# matrix[2][1] = 8
# matrix[2][2] = 9

 

# 열 기준 순회

cols = len(matrix[0])

for j in range(cols):  # 열 순회
    for i in range(len(matrix)):  # 행 순회
        print(matrix[i][j], end=" ")
    print()
# 출력:
# 1 4 7
# 2 5 8
# 3 6 9

 

 


리스트 컴프리헨션

# 기본적인 2차원 리스트 생성(0으로 초기화)

matrix = [[0 for _ in range(3)] for _ in range(3)]
print(matrix)
# 출력: [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

# 1 ~ 9까지 채원 3x3 행렬
matrix = [[j + i * 3 + 1 for j in range(3)] for i in range(3)]
print(matrix)
# 출력: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

#홀수 숫자로 채워진 3x3 행렬
matrix = [[(j + i * 3) * 2 + 1 for j in range(3)] for i in range(3)]
print(matrix)
# 출력: [[1, 3, 5], [7, 9, 11], [13, 15, 17]]

# 사용자 입력값을 받아 2차원 리스트 생성
rows, cols = 3, 3
matrix = [[int(input(f"값 입력 ({i},{j}): ")) for j in range(cols)] for i in range(rows)]
print(matrix)
# 예제 입력:
# 값 입력 (0,0): 1
# 값 입력 (0,1): 2
# 값 입력 (0,2): 3
# 값 입력 (1,0): 4
# 값 입력 (1,1): 5
# 값 입력 (1,2): 6
# 값 입력 (2,0): 7
# 값 입력 (2,1): 8
# 값 입력 (2,2): 9
# 출력: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]