Python/[개념 및 문법]

[python] 2차원 배열 선언과 활용

hyunnn_00 2023. 7. 14. 10:20
전부 0으로 초기화된 2차원 배열 만들기(n x n 크기)
n = 4
arr_2d = [
    [0 for _ in range(n)]
    for _ in range(n)
]
print(arr_2d)

>> 출력 결과
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

 

n x m 크기의 격자 초기화

n, m 위치 유의하기! 

n, m = 4, 5
arr_2d = [
    [0 for _ in range(m)]
    for _ in range(n)
]
print(arr_2d)

>> 출력 결과
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

 

2차원 배열 출력하기
n = 4
arr_2d = [[1, 2, 3, 4], [7, 8, 9, 10], [11, 12, 13, 14], [15, 16, 17, 18]]
for i in range(n):
    for j in range(n):
        print(arr_2d[i][j], end=" ")
    print()

>>
1 2 3 4 
7 8 9 10 
11 12 13 14 
15 16 17 18

 

range 없이 리스트 내 각 원소를 바로 접근 가능

2차원 배열의 원소가 각 행

각 행에 있는 원소들을 조회하며 값을 출력

n = 4
arr_2d = [[1, 2, 3, 4], [7, 8, 9, 10], [11, 12, 13, 14], [15, 16, 17, 18]]
for row in arr_2d:
    for elem in row:
        print(elem, end=" ")
    print()

배열안의 숫자를 2씩 증가시키고 싶다면?
n = 3
arr_2d = [
    [0 for _ in range(n)]
    for _ in range(n)
]

num = 1
for i in range(n):
    for j in range(n):
        arr_2d[i][j] = num
        num += 2

# 출력
for row in arr_2d:
    for elem in row:
        print(elem, end=" ")
    print()
 ----------------------------------------------------------------------
1 3 5
7 9 11
13 15 17