파이썬 기초 2차원 리스트 개념 총정리 및 연습문제
오늘은 한국방송통신대학교 컴퓨터과학과 정재화 교수님의 수업 내용을 바탕으로, 파이썬 프로그래밍의 핵심 문법 중 하나인 '2차원 리스트(2D List)'에 대해 알아보겠습니다.

파이썬에서 데이터를 다룰 때 1차원 리스트만으로는 표현하기 어려운 복잡한 격자형 데이터(예: 지도, 거리표, 행렬 등)가 많은데요. 이를 완벽하게 해결해 주는 2차원 리스트의 구조부터 생성, 순회 방법까지 핵심만 쏙쏙 골라 정리해 보았습니다. 마지막에는 실력 점검을 위한 기출 스타일 문제 5개도 준비했으니 끝까지 함께 공부해 보아요.
1. 핵심 내용 요약
① 리스트(List)의 기본 개념
- 정의: 여러 개의 데이터(값)를 순서대로 묶어서 저장하는 파이썬의 대표적인 자료구조입니다.
- 특징: 중복된 값 저장 가능, 숫자·문자열뿐만 아니라 또 다른 리스트 등 서로 다른 데이터 타입의 데이터를 혼합하여 저장할 수 있습니다.
② 2차원 리스트란?
- 개념: 리스트 내부에 또 다른 리스트가 내포된 구조, 즉 '리스트의 리스트'를 의미합니다.
- 구조: 세로 방향의 '행(Row) 인덱스'와 가로 방향의 '열(Column) 인덱스'를 가지는 격자 형태(행렬, 도시 간 거리표 등)를 표현하는 데 주로 사용됩니다.
- 원소 접근법: 리스트명[행_인덱스][열_인덱스] 형태로 접근합니다.
- 예: distance[0][1] $\rightarrow$ 0번 행의 1번 열에 위치한 원소
③ 2차원 리스트 생성 방법
- 정적 생성: 생성 시점에 원소가 이미 결정되어 있는 경우.
- Python
-
distance = [[0, 151, 290], [151, 0, 178], [290, 178, 0]]
* **동적 생성 (중첩 반복문 활용)**: 행과 열의 크기를 정해두고 빈 리스트에 `append()`를 이용해 임의의 값을 채워 넣는 방식입니다.
```python
import random as rd
distance = []
for i in range(nRows): # 행의 개수만큼 반복
row = []
for j in range(nColumns): # 열의 개수만큼 반복
row.append(rd.randint(0, 99))
distance.append(row)
④ 2차원 리스트 순회 (탐색)
- 2차원의 모든 요소를 확인하기 위해서는 각 차원을 순차적으로 순회할 수 있도록 2개의 반복 구조(중첩 loop)를 사용해야 합니다.
-
Python
# 출발 도시(행) 순회 for dep in distance: # 도착 도시(열) 순회 for des in dep: print(des, end=" ") print() # 행이 끝날 때마다 줄바꿈
2. 기출문제 5
1. 파이썬의 리스트(List) 자료구조에 대한 설명으로 가장 올바르지 않은 것은?
① 여러 개의 데이터를 순서대로 묶어서 저장한다.
② 하나의 리스트에는 동일한 데이터 타입의 데이터만 저장할 수 있다.
③ 리스트 내부에 또 다른 리스트를 원소로 삽입할 수 있다.
④ 리스트는 중복된 값을 저장할 수 있다.
- 정답: ②
- 해설: 파이썬의 리스트는 숫자, 문자열뿐만 아니라 다른 리스트나 콜렉션 등 서로 다른 데이터 타입의 데이터를 동시에 저장할 수 있는 유연성을 가집니다.
2. 2차원 리스트 matrix = [[10, 20, 30], [40, 50, 60], [70, 80, 90]]가 있을 때, 값 60을 출력하기 위한 올바른 인덱싱 표현은?
① matrix[1][2]
② matrix[2][1]
③ matrix[2][2]
④ matrix[1][3]
- 정답: ①
- 해설: 파이썬의 인덱스는 0부터 시작합니다. 값 60은 두 번째 리스트(행 인덱스 1)의 세 번째 원소(열 인덱스 2)에 위치하므로 matrix[1][2]로 접근해야 합니다.
3. 다음 중 3행 4열의 2차원 리스트를 생성하기 위해 빈칸 (A), (B)에 들어갈 올바른 변수명은?
grid = [] for i in range(3): row = [] for j in range(4): row.append(0) (A).append((B))
① (A): row, (B): grid
② (A): grid, (B): row
③ (A): grid, (B): i
④ (A): row, (B): j
- 정답: ②
- 해설: 안쪽 반복문에서 열 방향 원소들이 row 리스트에 먼저 채워진 후, 완성된 하나의 행(row)을 전체 2차원 리스트인 grid에 추가해야 하므로 grid.append(row)가 올바릅니다.
4. 다음은 2차원 리스트의 모든 원소를 순회하며 출력하는 코드입니다. 밑줄 친 곳에 들어갈 변수로 알맞게 짝지어진 것은?
numbers = [[1, 2], [3, 4], [5, 6]] for i in numbers: for j in : print(, end=" ")
① numbers, i
② i, i
③ i, j
④ j, j
- 정답: ③
- 해설: 바깥쪽 for문에서 i는 numbers 안의 각 하위 리스트(행)를 받습니다. 따라서 안쪽 for문은 하위 리스트인 i를 순회해야 하므로 for j in i:가 되며, 실제 출력할 원소는 j가 됩니다.
5. 다음 파이썬 코드를 실행했을 때 최종적으로 출력되는 값은 무엇인가?
data = [[1, 2, 3], [4, 5, 6]] total = 0 for row in data: total += row[1] print(total)
① 5
② 6
③ 7
④ 9
- 정답: ③
- 해설: 바깥쪽 반복문이 돌면서 첫 번째 행 [1, 2, 3]의 1번 인덱스 값인 2를 total에 더하고, 두 번째 행 [4, 5, 6]의 1번 인덱스 값인 5를 total에 더합니다. 따라서 2 + 5 = 7이 출력됩니다.
3. 마무리글
오늘은 파이썬 프로그래밍에서 데이터를 보다 입체적이고 효율적으로 관리할 수 있게 해주는 2차원 리스트의 전반적인 개념을 다뤄보았습니다[cite: 1]. 처음에는 중첩 반복문과 대괄호 두 개([][])를 쓰는 구조가 다소 헷갈릴 수 있지만, 행과 열이라는 격자판을 머릿속에 그리며 연습해 보시면 금방 익숙해지실 겁니다[cite: 1].
오늘 정리해 드린 요약본과 기출문제가 여러분의 파이썬 학습과 시험 준비에 큰 도움이 되었기를 바랍니다.
혼자 공부하는 파이썬:1:1 과외하듯 배우는 프로그래밍 자습서 - 프로그래밍 언어 | 쿠팡
현재 별점 4.8점, 리뷰 312개를 가진 혼자 공부하는 파이썬:1:1 과외하듯 배우는 프로그래밍 자습서! 지금 쿠팡에서 더 저렴하고 다양한 프로그래밍 언어 제품들을 확인해보세요.
www.coupang.com
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
'IT 이야기' 카테고리의 다른 글
| 방송통신대 파이썬프로그래밍기초 :: 14강. 실전 프로그래밍 2-1 &기말시험 예상기출문제(정답및 해설) (0) | 2026.06.05 |
|---|---|
| 방송통신대 파이썬프로그래밍기초 :: 13강. 실전 프로그래밍 1 &기말시험 예상기출문제(정답및 해설) (0) | 2026.06.05 |
| 방송통신대 파이썬프로그래밍기초 :: 10강. 객체지향 &기말시험 예상기출문제(정답및 해설) (0) | 2026.05.28 |
| 방송통신대 파이썬프로그램 기초:: 9강. 콜렉션2 핵심 정리 & 기말시험 예상기출문제(정답및 해설) (0) | 2026.05.26 |
| 방송통신대 파이썬프로그래밍기초::8강 콜렉션1 &기말시험 예상기출문제(정답및 해설) (0) | 2026.05.24 |
댓글