왜 변수를 다시 할당 할 때 파이썬의 새 값이 새 메모리에 할당됩니까? 추가 값이 목록에 추가 된 경우 수정이 발생하지 않는 이유는 무엇입니까? 그러나 현재 목록과 일부 새 목록을 다시 할당하면 새 메모 리가 할당됩니다.왜 파이썬은 새로운 할당마다 새로운 메모리를 변수에 할당합니까?
>>> a=2
>>> id(a)
13332800
>>> a=a+2 # reassigning allocates new memory
>>> id(a)
13332752
>>> a=[1,2,3,4]
>>> id(a)
139923169899008
>>> a.append(2) # change takes in place
>>> id(a)
139923169899008
>>> a=a+[3,2] # this way causes new memory allocation
>>> id(a)
139923169899656
새로운 할당마다 메모리를 재 할당하는 것을 피할 수있는 방법이 있습니까?
http://stackoverflow.com/q/3402679/1205368 – Salem