파이썬의 del
문은리스트에 적용될 때 매우 이상합니다. 해당 목록의 항목을 삭제할뿐만 아니라 변수가 파생 된 모든 목록에서 동일한 요소를 삭제하기위한 "백 트랙"도 삭제합니다. 예를 들어파이썬 델 함수의 "역 추적"변수
: 즉
>>> x
[1, 2, 3, 4, 5]
>>> z=x
>>> del z[1]
>>> z
[1, 3, 4, 5]
>>> x
[1, 3, 4, 5]
, 내가 z
에 삭제를 적용하더라도이 삭제도 x
에 적용됩니다. 이 "역 추적"은 다른 명령이나 기능을 제공하지 않습니다.
>>> x=[1,2,3,4,5]
>>> z=x
>>> z+[6]
[1, 2, 3, 4, 5, 6]
>>> x
[1, 2, 3, 4, 5]
z 잎 x에 add 함수를 적용하면 매우 효과적입니다.
이것은 제가 작업하고있는 'NA'삭제 스크립트로 여러 가지 두통을 불러 일으 킵니다. del
문에 어떤 일이 발생하는지 알고 있습니까?이 문제를 해결하려면 어떻게해야합니까? z=x
을 설정하고 z
에 del을 적용하면 x
은 변경되지 않습니다.
:
다음 방법 중 하나를 사용하여 목록을 복사 할 수 있습니다 -have-variables – FogleBird