본문 바로가기
Python

2차원 리스트의 할당과 복사 알아보기

by 자동매매 2026. 1. 24.

2차원 리스트의 할당과 복사 알아보기

리스트를 다른 변수에 할당해도 변수 이름만 달라질 뿐 같은 리스트(객체)라고 했죠?

2차원 리스트도 마찬가지입니다.

다음과 같이 2차원 리스트를 만든 뒤 다른 변수에 할당하고, 요소를 변경해보면 두 리스트에 모두 반영됩니다.

 
>>> a = [[10, 20], [30, 40]]
>>> b = a
>>> b[0][0] = 500
>>> a
[[500, 20], [30, 40]]
>>> b
[[500, 20], [30, 40]]

 

그런데 리스트 a copy 메서드로 b에 복사한 뒤 b의 요소를 변경해보면 리스트 a b에 모두 반영됩니다.

>>> a = [[10, 20], [30, 40]]
>>> b = a.copy()
>>> b[0][0] = 500
>>> a
[[500, 20], [30, 40]]
>>> b
[[500, 20], [30, 40]]
 

 

2차원 이상의 다차원 리스트는 리스트를 완전히 복사하려면 copy 메서드 대신 copy 모듈의 deepcopy 함수를 사용해야 합니다.

>>> 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]]

 

이제 리스트 b의 요소를 변경해도 리스트 a에는 영향을 미치지 않습니다. 

copy.deepcopy 함수는 중첩된 리스트(튜플)에 들어있는 모든 리스트(튜플)를 복사하는 깊은 복사(deep copy)를 해줍니다.

 

'Python' 카테고리의 다른 글

문자열 포매팅  (0) 2026.01.24
문자열 method  (0) 2026.01.24
반복문으로 LIST만들기  (0) 2026.01.24
2차원 리스트  (1) 2026.01.24
위치 인수, 키워드 인수  (0) 2026.01.24

댓글