a[:]은 a의 복사본을 생성하므로 b=a[:]는 b가 이 복사본을 참조하도록 합니다. 즉, b과 a는 이제 서로 다른 개체를 참조하지만 두 개체가 동일합니다(동일하지는 않지만 동일함)
그래서 겉보기에는 둘 사이에 차이가 없어 보이지만, 전자라면 b이나 a을 바꾸면 둘 다 영향을 받습니다. 왜냐하면 둘 다 같은 객체를 참조하기 때문입니다. 후자는 서로 다른 객체를 참조하기 때문에 서로 영향을 미치지 않습니다. @hsfzxjy의 예는 이를 지적하는 것이며, 실험을 통해 차이점을 배울 수 있습니다.
당신이 부르죠
으아악차이점을 확인할 수 있습니다.
전자는 참고를 통과
후자는 카피
b=a
은b
이a
에서 참조하는a[:]
은 a의 복사본을 생성하므로b=a[:]
는b
가 이 복사본을 참조하도록 합니다. 즉,b
과a
는 이제 서로 다른 개체를 참조하지만 두 개체가 동일합니다(동일하지는 않지만 동일함)그래서 겉보기에는 둘 사이에 차이가 없어 보이지만, 전자라면
b
이나a
을 바꾸면 둘 다 영향을 받습니다. 왜냐하면 둘 다 같은 객체를 참조하기 때문입니다. 후자는 서로 다른 객체를 참조하기 때문에 서로 영향을 미치지 않습니다. @hsfzxjy의 예는 이를 지적하는 것이며, 실험을 통해 차이점을 배울 수 있습니다.내가 답변한 질문: Python-QA
파이썬에는 객체의 주소를 알아낼 수 있는 id라는 함수가 있는데, 출력해 보면 알 수 있습니다. Direct =는 원래 객체를 참조하는 참조 할당이고, [:]는 새로운 객체를 생성하는 재유도입니다.
으아악