> 백엔드 개발 > 파이썬 튜토리얼 > Python 목록: 값으로 전달합니까, 아니면 참조로 전달합니까?

Python 목록: 값으로 전달합니까, 아니면 참조로 전달합니까?

Patricia Arquette
풀어 주다: 2024-11-27 18:34:12
원래의
997명이 탐색했습니다.

Python Lists: Pass by Value or Reference?

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿