나는 목록을 지울 수 없다는 것을 성가 시게 느낀다. 이 예에서 :목록 지우기
a = []
a.append(1)
a.append(2)
a = []
I는 빈리스트, 그 메모리의 다른 위치에있는리스트의 새로운 인스턴스를 생성하고, 그래서이 참조하는 데 사용할 수 없다 초기화 번째 먼저 비효율적 인 것은 말할 것도 없습니다.
for i in range(len(a)):
a.pop()
이이 문제를 해결하는 더 나은 방법이 꽤하지만 장황한 것 : 나는 같은 포인터를 유지으로 볼 수
수있는 유일한 방법은 다음과 같은 일을하고 있습니까?
"메모리가 다른 곳에서 확장하므로 첫 번째 참조에 사용할 수 없습니다"이것은 파이썬 컨텍스트에서는 거의 의미가 없습니다. 어쩌면 C++에서는 가능하지만 파이썬에서는 그렇지 않을 수 있습니다. –
나는 다른 객체 내에서이 객체에 대한 참조가 있으면 '새로운'이 처음에는 다른 객체로 바뀌므로이 동일한 참조를 사용하여 새 객체를 수정할 수 없다는 것을 지적하고있었습니다. 파이썬은 여전히 포인터와 메모리 관리의 개념을 가지고 있습니다. 단지 포인터를 숨 깁니다. – Dan
"새로운 '지금은 처음과는 다른 것"절대적으로 사실이지만이 문제가있는 상황을 볼 수는 없습니다. 보다 완벽한 코드 예제가 실제로 중요한 부분을 설명하는 데 도움이 될 수 있습니다. –