下面是一個例子:Python:什麼時候兩個變量指向內存中的同一個對象?
l = [1, 5, 9, 3]
h = l
h[0], h[2] = h[2], h[0]
print(h) # [9, 5, 1, 3]
print(l) # [9, 5, 1, 3]
h = h*2
print(h) # [9, 5, 1, 3, 9, 5, 1, 3]
print(l) # [9, 5, 1, 3]
我的理解是,在調用設置h = l
只會在同一個項目點h
內存中l
在指指點點。那麼爲什麼在最後3行中,h
和l
不能給出相同的結果呢?
你改變'h'指向什麼時候再次分配給'h'。 – user2357112
這取決於變量的值是否可變。列表是可變的,整數不是。 –
設置'h = l'確實將'h'指向'l'。但是,然後設置'h = h * 2'將'h'指向別的東西。 – BrenBarn