1. 2차원 리스트

아직도 행과 열의 방향이 헷갈린다

2차원 리스트는 1차원리스트를 묶어놓은 list로 세로길이와 가로기링를 필요로 한다.

 

2. 2차원 리스트 만들기

 

  - 리스트의 행 과 열 M, N을 받아오는 경우

N, M = map(int, input().split())
arr = [list(map(int, input().split())) for _ in range(N)]
print(arr)

input 값이 아래와 같은 경우 N = 2, M = 3이 할당된다 (N의 값은 생략 해도 된다)

# input 값
# 2 3
# 1 2 3
# 4 5 6

# 출력 값
[[1, 2, 3], [4, 5, 6]]

- 비어있는 리스트 만들기

arr = [[0] * M for _ in range(N)]

0의 값을 가지고 있는 M*N 크기의 2차원 리스트 만들기

 

아래의 방법으로도 가능하다

arr = [[0]*M]*N

하지만 이 방법으로 2차원 리스트를 만들면 값을 얉은 복사로 불러오기 때문에 값에 접근하면 문제가 생길 수 있다

arr = [[0]*M]*N

arr[0][1] = 1

print(arr)


# 출력값
#[[0, 1, 0], [0, 1, 0]]

arr[0][1]의 값을 변경해주었는데 해당 값을 참조하는 arr[1][1]의 값도 1로 바뀐다.

 

3. 리스트 값에 접근하기

arr[i][j]

i = 세로 인덱스

j = 가로 인덱스 입력을 통해 값에 접근 가능하다.

반응형

+ Recent posts