我有些不明白
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])
比如這個(gè),講義里的代碼,L=T[2],我感覺(jué)是一個(gè)賦值語(yǔ)句啊,相當(dāng)于把T[2]給了L,那L和T的本身應(yīng)該沒(méi)關(guān)系吧,為什么變L會(huì)影響T呢。
2025-04-24
在這個(gè)例子中,當(dāng)你通過(guò)
L
修改列表的第二個(gè)元素時(shí),由于L
和T[2]
指向同一個(gè)對(duì)象,因此T[2]
也會(huì)反映出這個(gè)修改。總結(jié)
所以,你的理解部分正確:
L = T[2]
確實(shí)是一個(gè)賦值語(yǔ)句,但它并沒(méi)有創(chuàng)建T[2]
的一個(gè)新副本。相反,它讓L
和T[2]
都指向了同一個(gè)對(duì)象。這就是為什么修改L
會(huì)影響T
的原因。希望這個(gè)解釋能幫助你更好地理解Python中的對(duì)象引用和可變與不可變類型。2024-02-17
在Python中,元組是不可變的數(shù)據(jù)類型,但它們可以包含對(duì)其他可變對(duì)象的引用,比如列表。所以,元組的不可變性只限于元組自身的操作,而不限于其元素所指向的對(duì)象。
2022-05-06