>백엔드 개발 >파이썬 튜토리얼 >Python의 함수 내에서 목록을 수정하는 방법: 참조로 전달 또는 내부 수정?

Python의 함수 내에서 목록을 수정하는 방법: 참조로 전달 또는 내부 수정?

Patricia Arquette
Patricia Arquette원래의
2024-10-27 06:12:03847검색

How to Modify a List Within a Function in Python: Pass by Reference or In-Place Modification?

함수 내 목록 수정

함수에서 목록 매개변수로 작업할 때 함수에 전달된 참조는 원래 목록을 가리킵니다. 함수 내의 list_arg 변수에 대한 모든 수정 사항은 해당 로컬 범위로 제한되며 원본 목록에 영향을 주지 않습니다.

이 문제를 피하고 원본 목록을 수정하려면 요소를 목록에 직접 할당해야 합니다. 전체 목록을 새 값으로 다시 할당하는 대신. 예는 다음과 같습니다.

def function1(list_arg):
   a = function2()    # function2 returns an array of numbers
   list_arg[:] = list(a)

list1 = [0] * 5
function1(list1)
print(list1)  # [1, 2, 3, 4, 5]

이 수정된 코드에서는 슬라이스 표기법 list_arg[:]를 사용하여 list(a)의 요소를 원래 목록에 할당하여 목록을 효과적으로 수정합니다.

내부 수정은 편리해 보일 수 있지만 이해하기 어려워지고 코드를 유지 관리하는 개발자에게 혼란을 초래할 수 있다는 점에 유의하는 것이 중요합니다. 명시적 재할당은 일반적으로 명확성과 가독성을 위해 선호됩니다.

위 내용은 Python의 함수 내에서 목록을 수정하는 방법: 참조로 전달 또는 내부 수정?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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