Programming/🐍 Python

2차원 리스트 만들기 (행렬과 반복문)

남남이루 2021. 5. 18. 01:34
a = [[0]*3 for x in range(3)]
>>> [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

이므로 행렬 형태가 아님
따라서 for문에 넣어주면

for i in a:   #각 행마다 i에 할당되고
	print(i)  #행 출력하고나면 줄바꿈됨
>>> [0, 0, 0]
	[0, 0, 0]
    [0, 0, 0]

혹은

# try1
for x in a:
	for y in x:
    	print(y)
>>> 0
	0
    0
    0
    0
    0
    0
    0
    0

# try2
for x in a:
	for y in x:
    	print(y, end = ' ') #행 안에서는 옆으로 한칸만 이동 (줄바꿈없이)
    print() 				#한 행이 끝나면 다음열로 이동하기 위해 줄바꿈
>>> 0 0 0
	0 0 0
    0 0 0
    
# 일차원 리스트
a = [0] * 3
print(a[0])
# >>> [0, 0, 0]

# 이차원 리스트
a = [[0] * 3 for _ in range (3)]
print(a)
# _ 언더바로 돌리면 변수없이 반복문만 돔
# 그냥 변수 넣고 해도 돌긴 도네
# [[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, 0]] 

_언더바로 표시된 곳의 값을 바꾸려고 한다면

a[행][열] =할당 새로운 값
a[2][2] = 1

[[0, 0, 0]
 [0, 1, 0]
 [0, 0, 0]] 

 + 보기 편하게 출력하기 (반복문 이용한 행렬 형태로 출력)

 

a = [[0]*3 for x in range(3)]
>>> [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

이므로 행렬 형태가 아님
따라서 for문에 넣어주면

for i in a:   #각 행마다 i에 할당되고
    print(i)  #행 출력하고나면 줄바꿈됨
>>> [0, 0, 0]
    [0, 0, 0]
    [0, 0, 0]
    
혹은

# try1
for x in a:
    for y in x:
        print(y)
>>> 0
    0
    0
    0
    0
    0
    0
    0
    0

# try2
for x in a:
    for y in x:
        print(y, end = ' ') #행 안에서는 옆으로 한칸만 이동 (줄바꿈없이)
    print() 				#한 행이 끝나면 다음열로 이동하기 위해 줄바꿈
>>> 0 0 0
    0 0 0
    0 0 0