https://link.coupang.com/a/cahsDJ
안녕하세요, 파이썬 개발자 여러분! 오늘은 파이썬에서 자주 사용되는 리스트(list)의 복사 방법에 대해 알아보겠습니다. 특히 'soft copy'와 'hard copy'의 차이점을 쉽게 설명해드리려고 합니다.
Soft Copy (얕은 복사)
soft copy는 원본 리스트의 참조를 복사하는 방식입니다. 즉, 새로운 리스트 변수가 원본 리스트와 같은 메모리 주소를 가리키게 됩니다.
original = [1, 2, [3, 4]]
soft_copy = original
soft_copy[0] = 5
print(original) # 출력: [5, 2, [3, 4]]
Hard Copy (깊은 복사)
반면 hard copy는 원본 리스트의 모든 요소를 새로운 메모리 공간에 완전히 복사합니다. 이를 위해 `copy` 모듈의 `deepcopy` 함수를 사용할 수 있습니다.
import copy
original = [1, 2, [3, 4]]
hard_copy = copy.deepcopy(original)
이렇게 하면 `hard_copy`는 `original`과 완전히 독립된 새로운 리스트가 됩니다. 한 쪽을 수정해도 다른 쪽에 영향을 주지 않습니다.
hard_copy[0] = 5
hard_copy[2][0] = 7
print(original) # 출력: [1, 2, [3, 4]]
print(hard_copy) # 출력: [5, 2, [7, 4]]
주의할 점
1. 단순히 `list()`나 슬라이싱(`[:]`)을 사용한 복사는 1차원 리스트에서만 hard copy처럼 동작합니다. 중첩된 리스트에서는 soft copy처럼 작동할 수 있으니 주의가 필요합니다.
2. 성능 면에서 soft copy가 더 빠르지만, 데이터 무결성이 중요한 경우에는 hard copy를 사용하는 것이 안전합니다.
이해하기 쉽게 설명드렸나요? 리스트 복사 방식의 차이점을 이해하면 데이터를 더 효과적으로 다룰 수 있습니다. 여러분의 코딩 실력 향상에 도움이 되었길 바랍니다!