[Python] 배열을 복사하는 방법 - DeepCopy, Slicing

유승욱·2024년 2월 13일
0

알고리즘 문제를 풀다 보면 배열을 복사해야 하는 경우가 생긴다. 하지만 그냥 배열을 array2 = array1 과 같이 일반 변수처럼 복사하게 되면 array2의 값을 변경할때 array1의 값도 같이 변경되는 문제가 생긴다.
이를 해결하기 위해 배열을 복사할 때 DeepCopy나 Slicing을 사용해야 한다.

DeepCopy

>>> import copy
>>> a = [[1,2],[3,4]]
>>> b = copy.deepcopy(a)
>>> a[1].append(5)
>>> a
[[1, 2], [3, 4, 5]]
>>> b
[[1, 2], [3, 4]]

Slicing

a = [[1, 2], [3, 4]]
b = [arr[:] for arr in a]

참고로 DeepCopy보다 Slicing을 사용할 때 시간이 더 빠르다고 하므로 Slicing을 사용하는 편이 더 효율적일것이다.

0개의 댓글