亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

我有些不明白

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呢。

正在回答

3 回答

在這個例子中,當你通過L修改列表的第二個元素時,由于LT[2]指向同一個對象,因此T[2]也會反映出這個修改。

總結

所以,你的理解部分正確:L = T[2]確實是一個賦值語句,但它并沒有創建T[2]的一個新副本。相反,它讓LT[2]都指向了同一個對象。這就是為什么修改L會影響T的原因。希望這個解釋能幫助你更好地理解Python中的對象引用和可變與不可變類型。


0 回復 有任何疑惑可以回復我~

在Python中,元組是不可變的數據類型,但它們可以包含對其他可變對象的引用,比如列表。所以,元組的不可變性只限于元組自身的操作,而不限于其元素所指向的對象。

0 回復 有任何疑惑可以回復我~
x=(2,'FG',[4,6])
print(x)?#不會改變x中的數據類型
y=x[2]
print(y)#把索引2里面的list去改變這個x中的數據
#x[2]已經賦給了y這個變量名?就等于這是tuple中的第二個list列表?可以轉換
y[1]=20
print(y)#就可以把list中的數值進行在tuple中改變


2 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

我有些不明白

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號