Shallow Copy
a = [1,2,3,4,5]
b = a
b[0] = 6
print(a) # 6,2,3,4,5
print(b) # 6,2,3,4,5
여러분도 이런 상황이 있으셨을겁니다.
어떤 리스트의 원소를 바꿨는데 다른 리스트의 원소까지 바뀐 경험이요.
이것은 " b=a " 에서 얕은 카피가 일어났기 때문입니다.
이런 상황은 mutable한 객체인 list, set, dict에서 일어나고
immutable한 객체인 tuple에서는 일어나지않습니다.
1차원 리스트
1차원의 리스트는 슬라이싱(slicing)을 이용하면 됩니다.
a = [1,2,3,4,5]
b = a[:]
b[0] = 6
print(a) # 1,2,3,4,5
print(b) # 6,2,3,4,5
2차원 리스트
2차원의 리스트도 슬라이싱과 리스트 컴프리헨션을 이용하면 됩니다.
a = [[1,2,3],[4,5,6],[7,8,9]
b = [ arr[:] for arr in a ]
'CS > Python' 카테고리의 다른 글
[Python] 파이썬 올림, 내림, 반올림 총정리 (1) | 2024.07.15 |
---|---|
[Python] string 유용한 함수 (0) | 2024.01.05 |
[Python 오류] import cv2 안 될 때, install cv2 (0) | 2023.06.04 |
[Python] float에서 \n이 출력되는 현상 (???) (0) | 2023.04.05 |
[Python] 파이썬 입력 정리 (0) | 2023.04.05 |
댓글