>  기사  >  백엔드 개발  >  Python에서 목록 변수를 수정하면 목록 변수에 할당된 다른 변수에도 영향을 미치는 이유는 무엇입니까?

Python에서 목록 변수를 수정하면 목록 변수에 할당된 다른 변수에도 영향을 미치는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-02 18:55:30731검색

Why Does Modifying a List Variable in Python Also Affect Another Variable Assigned to It?

예기치 않은 목록 변형: 참조 효과 이해

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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