본문 바로가기

Programming/Python

[Python] 2차원 배열(리스트) 초기화, 입력 받기

파이썬 2차원 배열(리스트) 초기화

2차원 이상의 배열(리스트)를 초기화 해야하는 경우

 

#아래와 같은 방식으로 해야한다
n = 10
arr = [[0]*n for i _ in range(n)]


>> arr[[0] * n] * n
과 같은 방식(1차원 리스트 초기화)으로 초기화할 경우, [0] * n 을 모두 같은 객체로 인식
따라서 arr[0][0] = "1" 로 수정을 할 경우, 모든 행의 첫번째 값이 바뀜

 

# N*M 크기의 2차원 배열 초기화
n = 5
m = 5
arr = [[0]*m for _ in range(n)]
print(arr)

#[[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]

파이썬 2차원 배열(리스트) 입력받기

#1. 2차원 배열 입력 받기(문자열 여러줄 입력)
arr = [input() for _ in range(n)] 

#2-1. 띄어쓰기 없이 정수 여러개 입력
arr = [list(map(int, input())) for _ in range(n)]

#2-2. 띄어쓰기 없이 정수 여러개 입력
n, m = map(int, input().split())
arr = []
for i in range(n):
  arr.append(list(map(int, input())))

#3. 띄어쓰기 있이 정수 여러개 입력
arr = [list(map(int, input().split())) for _ in range(n)]