"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Python의 함수 내에서 목록을 수정하는 방법: 참조로 전달 또는 내부 수정?

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

2024-11-08에 게시됨
검색:449

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)의 요소를 원본 목록에 할당합니다. 목록을 효과적으로 수정합니다.

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

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3