입력 예시
3 4
0 1 0 0
0 0 0 0
0 0 1 0
Shell
복사
다음과 같이 첫째 줄에 2차원 리스트의 행과 열이 주어지고 두번째 줄부터 행렬의 데이터가 주어질 경우,
n, m = map(int, input().split())
# 1
mylist = [0 for _ in range(n)]
for i in range(n):
mylist[i] = list(map(int, input().split()))
# 2
mylist = []
for i in range(n):
mylist.append(list(map(int, input().split())))
# 3
mylist = [list(map(int, input().split())) for _ in range(n)]
# 결과
print(mylist)
>> [[0, 1, 0, 0], [0, 0, 0, 0], [0, 0, 1, 0]]
Python
복사
먼저 input() 함수로 입력받은 값을 split() 함수로 분리하고, map 함수를 이용하여 int 자료형으로 변환 후 변수 n과 m에 담는다. (n=3, m=4) 그 다음, 3가지 방법으로 2차원 리스트를 만들 수 있다.
#1
1차원 리스트인 mylist에 행의 개수(n) 만큼의 0으로 채운다.
그 다음 n번의 for문을 통해 한 줄 씩 input값으로 받아서 mylist에 채워져있는 0을 입력받은 값으로 대체한다. 이 때도 map 함수를 통해 int형으로 변환해준다.
#2
비어있는 1차원 리스트인 mylist를 선언하고, n번의 for문을 통해 한 줄 씩 입력받은 값을 mylist에 추가하는 방식이다.
append를 통해 한 줄 씩 순서대로 리스트의 원소로 추가한다.
#3
위에 나온 선언, 초기화, 입력, 원소추가를 한 줄로 축약한 것이다.
list comprehension을 통해 mylist의 원소가 될 형식을 list(map(int, input().split()))으로 지정해주고, n번만큼 실행한다.