목록 및 참조: Python의 변수 할당 이해
Python에서 목록을 참조하는 변수는 예기치 않은 동작을 나타낼 수 있습니다. 다음 코드를 살펴보세요.
<code class="python">v = [0] * 9 vec = v # Assign v's address to vec vec[5] = 5 # Modify vec at index 5 print(v) # Also prints [0, 0, 0, 0, 0, 5, 0, 0, 0]</code>
놀랍게도 'v'를 인쇄하면 코드도 수정되었음을 알 수 있습니다. 이 동작은 처음에는 혼란스러울 수 있습니다.
'v'가 변경되는 이유
'v'가 변경되는 이유는 vec와 v가 모두 참조이기 때문입니다. vec = v를 할당하면 새 목록이 생성되지 않습니다. 대신 메모리 포인터인 v의 주소를 vec에 할당하기만 하면 됩니다.
결과적으로 vec와 v는 모두 메모리의 동일한 목록을 가리킵니다. 두 변수 중 하나를 변경하면 기본 목록에 영향을 미치므로 'vec'가 수정되면 'v'도 변경됩니다.
별도 목록 만들기
만들려면 두 개의 개별 목록을 사용하려면 얕은 복사를 수행해야 합니다.
<code class="python">vec = list(v)</code>
이렇게 하면 'v'와 동일한 값을 가진 새 목록이 생성되지만 다른 메모리 위치에 저장됩니다. 이제 'vec'를 수정해도 'v'에는 영향을 미치지 않습니다.
위 내용은 Python에서 \'vec\'를 수정하면 \'v\'도 변경되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!