Python: 복사 변수를 변경하면 원래 변수에 영향을 미치는 이유
Python에서는 복사본을 수정할 때 특이한 동작이 발생할 수 있습니다. 변수는 원래 변수도 변경하는 것으로 보입니다. 이는 Python 변수가 실제 값이 아닌 참조를 저장하기 때문에 발생합니다.
이를 이해하려면 설명된 상황을 고려하십시오.
org_list = ['y', 'c', 'gdp', 'cap'] copy_list = org_list # Pass reference to org_list copy_list.append('hum') print(copy_list) # ['y', 'c', 'gdp', 'cap', 'hum'] print(org_list) # ['y', 'c', 'gdp', 'cap', 'hum']
copy_list를 org_list에 할당하면 새 목록이 생성되지 않습니다. 오히려 메모리에 있는 동일한 목록 객체에 대한 참조를 설정합니다. 따라서 copy_list 또는 org_list에 대한 변경 사항은 두 변수 모두에 직접 영향을 미칩니다.
완전히 독립적인 복사본을 생성하려면 참조가 아닌 실제 데이터의 복사본을 전달해야 합니다. 이는 조각 할당 연산자를 사용하여 수행할 수 있습니다.
copy_list = org_list[:] # Create a deep copy by slicing
원본 목록을 조각화하면 자체 데이터 복사본이 포함된 새 목록 개체를 생성할 수 있습니다. copy_list에 대한 수정 사항은 org_list에 영향을 미치지 않으며 그 반대의 경우도 마찬가지입니다.
위 내용은 복사 변수를 변경하면 Python의 원래 변수에 영향을 미치는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!