태지쌤

로봇 & 코딩교육 No.1 크리에이터

카테고리 없음

파이썬 리스트의 Soft Copy vs Hard Copy: 차이점 이해하기

태지쌤 2025. 1. 17. 12:59
반응형

https://link.coupang.com/a/cahsDJ

 

LG전자 2025 그램 프로 16 코어Ultra5 애로우레이크 - 노트북 | 쿠팡

쿠팡에서 5.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 1 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

 

안녕하세요, 파이썬 개발자 여러분! 오늘은 파이썬에서 자주 사용되는 리스트(list)의 복사 방법에 대해 알아보겠습니다. 특히 'soft copy'와 'hard copy'의 차이점을 쉽게 설명해드리려고 합니다.

Soft Copy (얕은 복사)

soft copy는 원본 리스트의 참조를 복사하는 방식입니다. 즉, 새로운 리스트 변수가 원본 리스트와 같은 메모리 주소를 가리키게 됩니다.

original = [1, 2, [3, 4]]
soft_copy = original
이렇게 하면 `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를 사용하는 것이 안전합니다.

이해하기 쉽게 설명드렸나요? 리스트 복사 방식의 차이점을 이해하면 데이터를 더 효과적으로 다룰 수 있습니다. 여러분의 코딩 실력 향상에 도움이 되었길 바랍니다!

반응형