Python의 목록 조작: 값 전달과 참조 비교
Python에서 목록을 작업할 때 공통적으로 발생하는 문제 중 하나는 전달 개념입니다. 참조를 통해 목록 변경에 어떤 영향을 미치는지 이해합니다. 이 문제를 설명하는 시나리오를 살펴보겠습니다.
a = ['help', 'copyright', 'credits', 'license'] b = a b.append('XYZ') print(b) # ['help', 'copyright', 'credits', 'license', 'XYZ'] print(a) # ['help', 'copyright', 'credits', 'license', 'XYZ']
이 예에서는 'b' 목록에 값을 추가하려고 하지만 놀랍게도 목록 'a'의 값도 변경됩니다. 이는 Python에서 목록(및 기타 객체)이 참조로 전달되기 때문입니다. 이는 동일한 메모리 위치를 공유한다는 의미입니다.
따라서 'b'를 'a'에 할당하면 새 목록을 생성하지만 동일한 목록을 참조합니다. 따라서 한 목록의 변경 사항은 다른 목록에도 반영됩니다.
값 전달 방법
의도하지 않은 변경을 방지하려면 새 목록을 만들어야 합니다. 그게 원본의 복사본이에요. Python에서는 슬라이싱을 사용하여 이를 달성할 수 있습니다.
b = a[:]
'a' 목록에서 슬라이스 연산자 [:]를 사용하면 'a'의 모든 요소를 포함하는 새 목록 'b'를 생성할 수 있습니다. 하지만 별도의 메모리 위치를 차지합니다. 이제 'b'에 대한 변경 사항은 'a'에 영향을 미치지 않습니다.
위 내용은 Python 목록: 값으로 전달합니까, 아니면 참조로 전달합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!