>백엔드 개발 >파이썬 튜토리얼 >복사 변수를 변경하면 Python의 원래 변수에 영향을 미치는 이유는 무엇입니까?

복사 변수를 변경하면 Python의 원래 변수에 영향을 미치는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-14 19:11:13682검색

Why Does Changing a Copy Variable Affect the Original Variable in Python?

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

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