>백엔드 개발 >파이썬 튜토리얼 >원본에 영향을 주지 않고 Python에서 중첩 목록을 효율적으로 복사하려면 어떻게 해야 합니까?

원본에 영향을 주지 않고 Python에서 중첩 목록을 효율적으로 복사하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-11-24 02:40:11205검색

How Can I Efficiently Copy Nested Lists in Python Without Affecting the Original?

Python에서 중첩 목록을 효율적으로 복사

Python에서는 변경 가능한 특성으로 인해 중첩 목록을 복사하는 것이 까다로울 수 있습니다. 얕은 복사 기술을 사용하는 경우 하나의 목록을 수정하면 원본 목록에 영향을 미칩니다. 이러한 제한을 극복하려면 Python에서 목록 복사의 미묘한 차이를 이해하고 복사된 목록의 독립성을 보장하는 방법을 선택하는 것이 중요합니다.

1D 목록의 예를 고려하세요.

a = [1, 2]
b = a[:]

이 시나리오에서는 b를 수정해도 a에 영향을 미치지 않으므로 얕은 복사로 충분합니다. 그러나 2D 또는 중첩 목록으로 작업할 때는 동일한 접근 방식이 실패합니다.

a = [[1, 2], [3, 4]]
b = a[:]

이 경우 b를 수정하면 a에도 영향을 미칩니다. 중첩된 목록의 진정으로 독립적인 복사본을 만들려면 더 깊은 수준의 복사를 탐구해야 합니다.

해결책: copy.deepcopy()를 사용한 심층 복사

Python의 복사본 모듈은 deepcopy() 함수를 사용하여 중첩 목록 전체 복사를 위한 강력한 솔루션을 제공합니다. 얕은 복사와 달리 이 함수는 중첩된 구조를 반복적으로 반복하여 모든 수준에서 독립적인 복사본을 만듭니다.

import copy
b = copy.deepcopy(a)

deepcopy()를 사용하면 b를 수정해도 원본 목록 a에 영향을 주지 않습니다. 이 기술을 사용하면 두 목록이 분리되어 독립적으로 조작될 수 있어 중첩 목록 수정 문제를 해결할 수 있습니다.

위 내용은 원본에 영향을 주지 않고 Python에서 중첩 목록을 효율적으로 복사하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.