개인적으로 2차원 리스트 이해하고 공부하는데 많이 힘들었다. 최대한 이해하기 쉽게 기록해보겠다.
수학시간에 배운 행렬 개념을 알면 그림을 보고 이해 할수있다!
얼핏보면 초보입장에서 보면 어렵게 볼수 있는데 잘게 쪼개어 보면 이해 하기가 쉽다.
a = [[10,20],[30,40],[50,60]]
for x ,y in a:
print(x,y)
pirnt(x,y)
출력하면 아래와 같은 형식으로 나온다!
단 이 방법은 2차원리스트가 가로크기가 크지 않을때 유용하다!
a = [[10,20],[30,40],[50,60]] for i in a: for j in i: print(j, end= ‘ ’) print( )
여기서 반복문 두 번 사용하는 차이점은 안쪽리스트에서
값을 꺼낸뒤에 요소별로 하나씩 할당해 리스트를 만들어낸다.
for 과 range 사용하기
a = [[10,20],[30,40],[50,60]] for i in range(len(a)): # 세로크기 3 for j in range(len(a[i]): # 가로크기2 print(a[i][j], end= ‘ ’) print( )
가로, 세로 크기 구분법
while 반복문 한번 사용하기
a = [[10,20],[30,40],[50,60]] i = 0 while i < len(a): #반복할 때 세로 리스트의 크기 활용 x,y = a[i] print(x,y) i+=1
while 반복문 두번 사용하기
a = [[10,20],[30,40],[50,60]] i = 0 while i < len(a): 세로크기 j = 0 while j < len(a[i]):가로크기 print(a[i][j], end =“ ”) j+=1 # 가로 인덱스 1씩 증가 print() i+=1 # 세로 인덱스를 증가시키는데 이것을 j+=1밑에 입력하면 잘못된 방식으로 나온다.
for 반복문으로 1차원 리스트 만들기
a = [] for i in range(10): a.append(0) print(a) 출력값:[0,0,0,0,0,0,0,0]
for 반복문으로 2차원 리스트 만들기
a=[] for I in range(3): line=[] # 안쪽에 사용할 빈 리스트 생성 for j in range(2): line.append(0): # 빈 리스트 안에 0 값을 추가하는 코드 a.append(line) print(a) 출력값 [[0,0],[0,0],[0,0]]
리스트 표현식으로 2차원 리스트 만들기
a=[[0 for j in range(2)]for i in range(3)] a [[0,0],[0,0],[0,0]]
코드 동작순서는 먼저 range(2)
두번 반복한뒤에 `range(3)
으로 3번 반복하면 값이 출력된다.
톱니형 리스트 만들기
a=[3,1,3,2,5] # 가로크기 있다고 가정할 때 b=[] for i in a: line = [] for j in range(i): line.append(0) b.append(line) print(b) [[0,0,0],[0],[0,0,0],[0,0],[0,0,0,0,0]]
>>>a = [[10,20],[30,40]]
>>>b = a
>>>b[0][0]=500
>>>a
[500,20],[30,40]
>>>b
[[500,20],[30,40]]
# copy 메서드 사용!!
>>>a = [[10,20],[30,40]]
>>>b = a.copy()
>>>b[0][0]=500
>>>a
[500,20],[30,40]
>>>b
[[500,20],[30,40]]
# import copy 모듈사용!!
>>>a = [[10,20],[30,40]]
>>>import copy
>>>b = copy.deepcpy(a)
>>>b[0][0] = 500
[10,20],[30,40]
>>>b
[[500,20],[30,40]]