[Python] 2차원 리스트 - 파이썬 자료구조
by Ungbae
본 게시글은 학부 수업 '컴퓨터 프로그래밍 1' 과 참고 교재 '파워 유저를 위한 파이썬 Express' 내용을 참고하여 이해한 내용을 정리하였습니다.
2차원 리스트

2차원 리스트 == 2차원 테이블
2차원 리스트랑 텐서가 서로 비슷한 개념인가?
개념적으로는 비슷한 면이 있으나, 정확히 같다고 보기는 어렵다.
- 둘 다 다차원 데이터를 저장하는 구조
- 인덱스를 통해 특정 위치의 데이터에 접근한다.
- 행렬 연산의 기본이 되는 구조
라는 점은 유사하다.
2차원 리스트는 Python의 기본 자료구조. 서로 다른 타입의 데이터를 섞어서 저장할 수 있다. 각 행의 길이가 달라도 된다.
텐서는 수학적 그리고 머신러닝의 개념으로 보통 같은 타입의 수치 데이터만 저장하고, 정형화된 형태(shape)를 가진다.
# 2차원 리스트 - 이런 것도 가능
list_2d = [[1, 'hello'], [2, 3, 4]]
# 텐서는 보통 이런 형태
# [[1, 2, 3],
# [4, 5, 6]] <- 모든 행이 같은 길이, 같은 타입
Python에서 텐서를 다룰 때는 보통 NumPy 배열이나 PyTorch/TensorFlow의 텐서 타입을 사용한다. 2차원 리스트는 구조를 이해하는 데에 텐서 개념을 떠올리면 된다. 하지만 세부 개념은 다르다!
2차원 리스트의 구현

- 리스트의 리스트로 구현된다.
- 리스트 안에 리스트
2차원 리스트 동적 생성
# 동적으로 2차원 리스트 생성
rows = 3
cols = 4
s = []
for row in range(rows):
s += [[0]*cols] # 2차원 리스트끼리 합쳐진다.
print("s =", s)
# 출력 결과
# s = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
주의!!!
실제로는 동적으로 2차원 리스트를 생성하는 경우가 더 많다는 것
rows = 3
cols = 4
s = []
for row in range(rows):
s += [0]*cols # 1차원 리스트끼리 합쳐진다.
print("s =", s)
# 출력 결과
# s = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
2차원 리스트 요소 접근
s = [ [1, 2, 3, 4],
[5, 6, 7, 8],
[10, 11, 12, 13]]
# 행과 열의 개수를 구한다.
rows = lens(s)
cols = len(s[0])
for r in range(rows):
for c in range(cols):
print([s[r][c], end-",")
print()
# 출력 결과
# 1, 2, 3, 4,
# 5, 6, 7, 8,
# 9, 10, 11, 12,
2차원 리스트를 함수로 넘기기
def sum(numbers):
total = 0
for i in range(len(numbers)):
for j in range(len(numbers[0])):
total = total + numbers[i][j]
return total
2차원 리스트도 함수로 전달할 수 있다. 함수 안에서는 2차원 리스트의 차원을 추출할 수 있다. 2차원 리스트를 s라고 치면 len(s)는 행의 개수이고 len(s[0])의 열의 개수.
리스트 개념 종합 요약
- 리스트는 일련의 값을 저장하는 컨테이너
- 리스트의 각 요소는 인덱스라는 정수로 접근. e.g. i 번째 요소는 mylist[i]
- insert 메서드를 사용하여 리스트의
- pop() 메서드를 사용하여 리스트의 임의 위치에서 요소를 제거할 수 있다.
- remove 메서드를 사용하여 리스트에서 원하는 요소를 제거할 수 있다.
- + 연산자를 사용하여 두 리스트를 연결할 수 있다.
- 슬라이스 연산자 (:)를 사용하여 부분 리스트를 만들 수 있다.
- 리스트 함축은 기존 리스트를 기반으로 새로운 리스트를 작성하는 방법
'CS & AI > Python' 카테고리의 다른 글
| [Python] 파일 그리고 예외처리 (2) | 2025.06.10 |
|---|---|
| [Python] 객체와 클래스 (1) | 2025.06.09 |
| [Python] 리스트(List) 심화 - 파이썬 자료구조 (1) | 2025.05.28 |
| [Python] 리스트(List) 기본 - 파이썬 자료구조 (7) | 2025.05.26 |
| [Python] 반복문(for 문) (0) | 2025.04.16 |
블로그의 정보
그럼에도 불구하고
Ungbae