예기치 않은 목록 변형: 참조 효과 이해
Python에서 목록 변수는 메모리에 저장된 배열에 대한 참조를 나타냅니다. 하나의 목록 변수를 다른 목록 변수에 할당할 때(예: vec = v) 실제로 일어나는 일은 배열 자체를 복사하는 대신 배열의 주소가 전달된다는 것입니다.
이는 하나의 목록에 대한 모든 수정 사항이 동일한 메모리 주소를 가리키는 다른 목록에도 영향을 줍니다. 예를 들어 다음 코드를 생각해 보세요.
<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의 인덱스 5에 있는 값이 5로 수정되면 변경 사항은 vec뿐만 아니라 v에도 반영됩니다. 두 변수 모두 동일한 기본 배열을 가리키기 때문입니다.
목록의 실제 복사본을 만들려면 , 아래와 같이 원본 목록을 인수로 사용하여 copy() 메서드 또는 list() 생성자를 사용합니다.
<code class="python">vec = v.copy() vec = list(v)</code>
위 내용은 Python에서 목록 변수를 수정하면 목록 변수에 할당된 다른 변수에도 영향을 미치는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!