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

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

本節示例中為什么重新賦值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重新指向這兩個位置。

?不知道我的想法錯在哪里?謝謝各位指教!

正在回答

1 回答

t[2]指向一個 list (實際上是一個內存地址)

L=t[2] 是將 L 指向該list

L[0]='X' 是將該list的0位的內存地址里面的數據替換為X ,而不是開辟新的位置

L[1]同理

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

lurenyi000 提問者

嗯,那為什么L[0]='X' 是將該list的0位的內存地址里面的數據替換為X ,而不是開辟新的位置呢? 比如我們寫 a = 3 b = a 此時如果我寫 b =4,則a的值是不變得;同樣我a=4, b的值也是不變得。 我們就可以認為是內存新開辟一個位置,存放的值是4。然后將a或者b指向這個新開辟的位置。 請問以上這個例子和L[0]='X' 有什么不同呢?
2016-05-21 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識Python
  • 參與學習       758391    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

本節示例中為什么重新賦值L之后,t的值也變了呢?

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

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

幫助反饋 APP下載

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

公眾號

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