我有些不明白
T?=?(1,?'CH',?[3,?4]) L?=?T[2] print(L)?#?==>?[3,?4] #?嘗試替換L中的元素 L[1]?=?40 print(L)?#?==>?[3,?40] print(T)?#?==>?(1,?'CH',?[3,?40])
比如這個,講義里的代碼,L=T[2],我感覺是一個賦值語句啊,相當于把T[2]給了L,那L和T的本身應該沒關系吧,為什么變L會影響T呢。
T?=?(1,?'CH',?[3,?4]) L?=?T[2] print(L)?#?==>?[3,?4] #?嘗試替換L中的元素 L[1]?=?40 print(L)?#?==>?[3,?40] print(T)?#?==>?(1,?'CH',?[3,?40])
比如這個,講義里的代碼,L=T[2],我感覺是一個賦值語句啊,相當于把T[2]給了L,那L和T的本身應該沒關系吧,為什么變L會影響T呢。
2022-04-29
舉報
2025-04-24
在這個例子中,當你通過
L
修改列表的第二個元素時,由于L
和T[2]
指向同一個對象,因此T[2]
也會反映出這個修改。總結
所以,你的理解部分正確:
L = T[2]
確實是一個賦值語句,但它并沒有創建T[2]
的一個新副本。相反,它讓L
和T[2]
都指向了同一個對象。這就是為什么修改L
會影響T
的原因。希望這個解釋能幫助你更好地理解Python中的對象引用和可變與不可變類型。2024-02-17
在Python中,元組是不可變的數據類型,但它們可以包含對其他可變對象的引用,比如列表。所以,元組的不可變性只限于元組自身的操作,而不限于其元素所指向的對象。
2022-05-06