Python에서 목록을 분할해도 목록 내 개별 요소의 복사본이 생성되지 않습니다. 대신 해당 요소에 대한 참조를 복사하기만 하면 됩니다. 이는 불변(예: 정수) 개체와 변경 가능(예: 사전) 개체 모두에 해당됩니다.
이를 입증하려면 다음을 고려하세요. 다음 코드:
<code class="python">a = [1000 + 1, 1000 + 1, 1000 + 1] b = a[1:3]</code>
목록 a의 개체가 불변 정수임에도 불구하고 슬라이싱은 동일한 개체를 참조하는 새 목록 b를 만듭니다. 이는 동일한 ID를 통해 알 수 있습니다.
<code class="python">print(id(a[0]) == id(b[0])) # True print(id(a[1]) == id(b[1])) # True</code>
슬라이싱은 생성된 추가 목록 객체로 인해 일부 메모리 오버헤드를 발생시킵니다. 그러나 이 오버헤드는 목록의 길이에 관계없이 일정하며 일반적으로 객체 자체의 크기에 비해 무시할 수 있습니다.
메모리 보존이 가장 중요한 관심사인 경우 Python 목록 대신 numpy 배열 사용을 고려하세요. numpy 배열을 분할하면 원본 데이터에 대한 뷰가 생성되어 동일한 메모리 공간을 공유합니다. 이는 대규모 데이터 세트가 있는 시나리오에서 매우 유리할 수 있습니다.
그러나 뷰를 사용하려면 여러 뷰에서 의도하지 않은 수정이 발생할 수 있는 등 추가 고려 사항이 따른다는 점에 유의하는 것이 중요합니다. 코드에서 예상치 못한 결과를 방지하려면 이 동작을 이해하는 것이 중요합니다.
위 내용은 Python 목록 조각화는 요소의 복사본을 생성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!