- 2차원 리스트
2차원 리스트란 말 그대로, 2차원에 리스트를 생성하는 것을 말합니다.
list = [[10, 20], [30, 40], [50, 60]]
리스트 안에 리스트를 생성하면 그 위치를 2차원 형식으로 구분할 수 있습니다.
list = [[10, 20],
[30, 40],
[50, 60]]
열0 | 열1 | |
행0 | 10 | 20 |
행1 | 30 | 40 |
행2 | 50 | 60 |
이렇게 각 리스트의 요소는 2차원의 행과 열에 위치하게 됩니다.
- 2차원 요소 접근법
요소에 접근하기 위해서는 행과 열의 인덱스에 접근합니다.
>>> list = [[10, 20], [30, 40], [50, 60]]
>>> list[0][0]
10
리스트[행의 인덱스(세로 인덱스)][열의 인덱스(가로 인덱스)]를 통해 원하는 요소에 접근할 수 있습니다.
>>> list = [[10, 20], [30, 40], [50, 60]]
>>> list[0][0] = 100
>>> list
[[100, 20], [30, 40], [50, 60]]
또한 원하는 위치에 리스트를 할당해 리스트 값을 바꿀 수도 있습니다.
- for문을 통한 출력법
2차원 리스트는 리스트안에 리스트가 들어갔으므로 for문을 통해 요소들을 출력하려면 두개의 변수가 필요합니다.
>>> list = [[10, 20], [30, 40], [50, 60]]
>>> for i in list:
print(i)
[10, 20]
[30, 40]
[50, 60]
만약 한 개의 변수를 가지고 출력한다면 안에 들어있던 리스트 형식 그대로 출력됩니다.
>>> list = [[10, 20], [30, 40], [50, 60]]
>>> for i in list:
for j in i:
print(j, end=' ')
print()
10 20
30 40
50 60
변수 j를 하나 더 생성해 i에 들어간 [10, 20], [30, 40], [50, 60]을 한번더 쪼개고 j를 출력합니다. end=' '를 통해 숫자 간 공백을 만들어주고 print()를 통해 줄바꿈을 해줍니다.
- while문을 통한 출력법
list = [[10, 20], [30, 40], [50, 60]]
i = 0
while i < len(list):
x, y = a[i]
print(x, y)
i += 1
10 20
30 40
50 60
리스트를 생성하고 리스트 요소 수보다 적을 때 출력한다는 조건을 생성한 후 x, y 두개의 변수에 a[i]를 이용해 리스트 요소를 넣습니다. i = 0 이라면 x, y = [10, 20] 이 되므로 x에 10, y에 20이 할당됩니다. 그 후 i가 요소 수보다 적을 때까지 반복 출력하면 list의 모든 요소가 출력됩니다.
list = [[10, 20], [30, 40], [50, 60]]
i = 0
while i < len(list):
j = 0
while j < len(list[i]):
print(list[i][j], end=' ')
j += 1
print()
i += 1
while문안에 while문을 쓸 수도 있습니다.
첫번째 while 문에서 len(리스트)를 이용하여 리스트의 세로 길이를 구합니다. 그 후 두번째 while문에서 len(리스트[i])를 이용하면 (ex. list[0] = [10, 20]) 리스트 안의 요소들의 개수를 구해 가로 길이를 구할 수 있습니다. 이것은 요소들의 개수가 2차원 리스트의 열의 개수가 되기 때문입니다. 그후 list[세로 길이][가로 길이]를 프린트하여 첫번째 행 list[0][0], list[0][1]을 프린트하게 되고 이것을 반복하며 모든 요소들을 출력하게 됩니다.
'Python' 카테고리의 다른 글
[Python] 문자열 조작 (0) | 2021.04.07 |
---|---|
[Python] if, else, elif (0) | 2021.04.05 |
[Python] 리스트 표현식 (list comprehension) (0) | 2021.03.28 |
[Python] 리스트 조작 (0) | 2021.03.28 |
[Python] 시퀀스 자료형(sequence types) (0) | 2021.03.15 |