課程
/后端開發
/Python
/初識Python
t = ('a', 'b', ['A', 'B']) L = t[2] L[0]='X' L[1]='Y' print t 運行結果:('a', 'b', ['X', 'Y']) 為什么是t賦值給L,改變L的值會改變t的值呢?
難道t(2)指向的不是['A','B']??而是指向了L???
2017-11-27
源自:初識Python 4-9
正在回答
我自己也有這個疑問,我自己試了試,賦值給新變量的時候,無論幾個,無論改誰,所有的都跟著改變。
個人猜測
可能新變量只是存了一個首地址。list變量只是用list的起始地址來表示。并沒有重新開辟內存,完整復制一份新的。所以才會出來這個效果。
t?=?('a',?'b',?['A',?'B']) L?=?t[2] L[0]='X' L[1]='Y' print?t
舉報
學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-12-14
我自己也有這個疑問,我自己試了試,賦值給新變量的時候,無論幾個,無論改誰,所有的都跟著改變。
個人猜測
可能新變量只是存了一個首地址。list變量只是用list的起始地址來表示。并沒有重新開辟內存,完整復制一份新的。所以才會出來這個效果。
2017-11-27