a = [[10, 20], [30, 40], [50, 60]]
i = 0
while i < len(a):
x, y = a[i]
print(x, y)
i += 1
10 20
30 40
50 60
-while 반복문 사용때도 리스트 크기 활용하면 편하다.
a = [[10, 20], [30, 40], [50, 60]]i = 0while i < len(a):
j = 0
while j < len(a[i]):
print(a[i][j], end=' ')
j += 1 #가로 인덱스를 1 증가시킴
print()
i += 1 #세로 인덱스를 1 증가시킴
10 20
30 40
50 60
a = []
for i in range(10):
a.append(0)
print(a)
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
예시1)
a = []
for i in range(3):
line = []
for j in range(2):
line.append(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)]
print(a)
[[0, 0], [0, 0], [0, 0]]
-만약 for 반복문 1번만 하용하려면 아래처럼 리스트 자체를 곱해주면 됨.
a = [[0] * 2 for i in range(3)]
print(a)
[[0, 0], [0, 0], [0, 0]]
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 = [[0] * i for i in [3,1,3,2,5]]
print(a)
[[0, 0, 0], [0], [0, 0, 0], [0, 0], [0, 0, 0, 0, 0]]
-2차원 리스트 만든 뒤 다른 변수에 할당하고, 요소를 변경하면 두 리스트에 모두 반영됨.
예시
a = [[10,20],[30,40],[50,60]]
b = a
b[0][0] = 500
print(a)
[[500, 20], [30, 40], [50, 60]]
print(b)
[[500, 20], [30, 40], [50, 60]]
-리스트 a를 b에 copy한 뒤 b의 요소를 변경하면 리스트 a,b 모두 반영됨.
예시
a = [[10,20],[30,40]]
b = a.copy()
b[0][0] = 500
print(a)
[[500, 20], [30, 40]]
print(b)
[[500, 20], [30, 40]]
-2차원 이상의 다차원 리스트는 리스트를 완전히 복사하려면 copy 메서드 대신 copy 모듈의 deepcopy 함수를 사용해야 한다.
예시
a = [[10,20],[30,40]]
import copy
b = copy.deepcopy(a)
b[0][0] = 500
print(a)
[[10, 20], [30, 40]]
print(b)
[[500, 20], [30, 40]]