튜플 = ((값, 값), (값, 값), (값, 값))
튜플 = ([값, 값], [값, 값], [값, 값])
리스트 = [(값, 값), (값, 값), (값, 값)]
리스트[세로인덱스][가로인덱스]
리스트[세로인덱스][가로인덱스] = 값
a = [[10, 20], [30, 40], [50, 60]]
for i in a: # a에서 안쪽 리스트를 꺼냄
for j in i: # 안쪽 리스트에서 요소를 하나씩 꺼냄
print(j, end=' ')
print()
a = [[10, 20], [30, 40], [50, 60]]
for i in range(len(a)): # 세로 크기
for j in range(len(a[i])): # 가로 크기
print(a[i][j], end=' ')
print()
a = [[10, 20], [30, 40], [50, 60]]
i = 0
while i < len(a): # 반복할 때 리스트의 크기 활용(세로 크기)
x, y = a[i] # 요소 두 개를 한꺼번에 가져오기
print(x, y)
i += 1 # 인덱스를 1 증가시킴
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 # 세로 인덱스를 1 증가시킴
a = [] # 빈 리스트 생성
for i in range(10):
a.append(0) # append로 요소 추가
print(a)
결과 : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
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]]
>>> a = [[0 for j in range(2)] for i in range(3)]
>>> a
[[0, 0], [0, 0], [0, 0]]
>>> a = [[0] * 2 for i in range(3)]
>>> a
[[0, 0], [0, 0], [0, 0]]
❶
a = [3, 1, 3, 2, 5] # 가로 크기를 저장한 리스트
b = [] # 빈 리스트 생성
for i in a: # 가로 크기를 저장한 리스트로 반복
line = [] # 안쪽 리스트로 사용할 빈 리스트 생성
for j in range(i): # 리스트 a에 저장된 가로 크기만큼 반복
line.append(0)
b.append(line) # 리스트 b에 안쪽 리스트를 추가
print(b)
❷
>>> a = [[0] * i for i in [3, 1, 3, 2, 5]]
>>> 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, 0, 0]]
참고 : sorted로 2차원 리스트 정렬하기
sorted(반복가능한객체, key=정렬함수, reverse=True 또는 False)students = [ ['john', 'C', 19], ['maria', 'A', 25], ['andrew', 'B', 7] ] print(sorted(students, key=lambda student: student[1])) # 안쪽 리스트의 인덱스 1을 기준으로 정렬 print(sorted(students, key=lambda student: student[2])) # 안쪽 리스트의 인덱스 2를 기준으로 정렬
결과
[['maria', 'A', 25], ['andrew', 'B', 7], ['john', 'C', 19]]
[['andrew', 'B', 7], ['john', 'C', 19], ['maria', 'A', 25]]
❶ 할당하기
>>> 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]]
>>> a = [[10, 20], [30, 40]]
>>> import copy # copy 모듈을 가져옴
>>> b = copy.deepcopy(a) # copy.deepcopy 함수를 사용하여 깊은 복사
>>> b[0][0] = 500
>>> a
[[10, 20], [30, 40]]
>>> b
[[500, 20], [30, 40]]
퀴즈문제 > for반복문을 사용하여 2차원 리스트 a의 모든 요소를 출력하는 방법
for i in a: for j in i: print(j)
연습문제 : 3차원 리스트 만들기
높이2, 세로 크기 4, 가로 크기 3
[[[0 for col in range(3)] for row in range(4)] for depth in range(2)]
[[[0 for col in range(3)] for row in range(4)] for depth in range(2)]
실행결과 : [[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]]