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

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

list和變量的指向問題

t?=?('a',?'b',?['A',?'B'])
L?=?t[2]
L[0]?=?'X'
L[1]?=?'Y'
print?t

a=2
r=('a','b',a)
print?r
a=3
print?r

問題1:這兩段程序都是通過tuple,一個指向變量,一個指向list,為什么在list改變時tuple也隨之改變,解釋為指向未變,而在變量值改變時tuple不變?

問題2:a=3;這個過程不應該是在內存生成3,生成a,然后指向嗎?和list類似?

正在回答

3 回答

嗯,對于問題1,我覺得應該是L[2]指向的是列表,當列表的指向發生改變的時候,與tuple無關,所以列表中的元素可以改變。但r[2]指向的數字2.當變量a改變時,是又指向了數字3,相當于新生成了一個變量,與原來的變量已經無關了??蓞⒖?a >http://blog.csdn.net/longshenlmj/article/details/13773977

對于問題2,這個過程相當于新生成了變量,或者說是一個指向數字3的指針。對于指針的指向來說,可以說是類似的。

以上是我的一點理解,歡迎交流。

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

溫水中的青蛙4014529 提問者

謝謝你的回答,謝謝文章鏈接
2016-09-24 回復 有任何疑惑可以回復我~
#2

yinyanting 回復 溫水中的青蛙4014529 提問者

嘻嘻,共同進步!
2016-09-26 回復 有任何疑惑可以回復我~

哈哈,老師的習慣。。。,,

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

問題1:tuple的元素是不可變的,指向的第三個元素是列表,元組指向列表的地址,修改的是列表的內容,列表的地址沒有變化,所以元組仍然是指向列表的

問題2 :a指向2的地址,r的元組中有a,元組連接到了這個地址,所以元組指向的是2的地址,后面給a賦值3 ,這時a指向了3的地址,但是元組仍然是指向原來的地址

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

溫水中的青蛙4014529 提問者

那list不是這樣的原理?元組中含list,list指向AB的地址,所以元祖連接到了AB這個地址,所以元組指向的是AB的地址,后面給list賦值XY ,這時list指向了XY的地址,但是元組仍然是指向原來的地址
2016-09-24 回復 有任何疑惑可以回復我~
#2

溫水中的青蛙4014529 提問者

感謝你的回答,已經理解。
2016-09-24 回復 有任何疑惑可以回復我~

舉報

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

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

進入課程

list和變量的指向問題

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

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

幫助反饋 APP下載

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

公眾號

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