本節示例中為什么重新賦值L之后,t的值也變了呢?
我對這一節的例子有一個疑問。
?>>> t = ('a', 'b', ['A', 'B'])?
>>> L = t[2]?
>>> L[0] = 'X'?
>>> L[1] = 'Y'?
為什么改變了L的值以后,t的值也跟著變了呢??
我覺得 L = t[2]代表在內存中開辟名為L的list變量,L的第一個值指向t(2)[0],L的第二個值指向t(2)[1]。 在經過 L[0] = 'X' 以及L[1] = 'Y'之后,內存中新開辟兩個位置,一個儲存X,另外一個儲存Y,然后將L重新指向這兩個位置。
?不知道我的想法錯在哪里?謝謝各位指教!
2016-05-21
t[2]指向一個 list (實際上是一個內存地址)
L=t[2] 是將 L 指向該list
L[0]='X' 是將該list的0位的內存地址里面的數據替換為X ,而不是開辟新的位置
L[1]同理