하나의 목록을 변경하면 다른 목록이 예기치 않게 변경되는 이유
Python에서는 하나의 목록을 변경하면 예기치 않게 다른 목록에 영향을 미치는 상황이 흔히 발생합니다. 왜 이런 일이 발생하는지 살펴보겠습니다.
다음 코드를 고려하세요.
<code class="python">v = [0, 0, 0, 0, 0, 0, 0, 0, 0] vec = v vec[5] = 5</code>
이 코드를 실행한 후 v와 vec 모두 다음과 같은 수정된 목록을 표시합니다: [0, 0, 0, 0, 0, 5, 0, 0, 0].
설명:
vec와 v는 별도의 목록이 아니라 메모리에 있는 동일한 목록에 대한 참조입니다. vec = v를 할당하면 새 목록이 생성되지 않습니다. 대신 vec에 v와 동일한 주소를 제공합니다. 따라서 vec에 대한 모든 수정 사항은 v와 vec가 참조하는 원래 목록에 직접적인 영향을 미칩니다.
해결책:
v에 대한 참조가 아닌 복사본을 생성하려면 다음 구문을 사용해야 합니다.
<code class="python">vec = list(v)</code>
list(v)를 사용하면 다음과 동일한 요소로 새 목록을 생성할 수 있습니다. v. vec에 대한 변경 사항은 v에 영향을 미치지 않으며 그 반대의 경우도 마찬가지입니다.
위 내용은 Python에서 하나의 목록을 수정하면 다른 목록이 변경되는 것처럼 보이는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!