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

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

對于賦值有疑問

rangking=['Adam','Lisa','Bart',]
L=rangking
rangking.insert(2,?'Paul')
print(rangking)
L.append('Paul')
print(L)
的輸出結果是
['Adam',?'Lisa',?'Paul',?'Bart']
['Adam',?'Lisa',?'Paul',?'Bart',?'Paul']
但是
rangking=['Adam','Lisa','Bart',]
L=rangking
rangking.insert(2,?'Paul')
L.append('Paul')
print(rangking)
print(L)
的結果是
['Adam',?'Lisa',?'Paul',?'Bart',?'Paul']
['Adam',?'Lisa',?'Paul',?'Bart',?'Paul']


正在回答

2 回答

感謝你的認真思考和舉一反三,我也想到了同樣的問題,謝謝!

0 回復 有任何疑惑可以回復我~
L.append('Paul')放在print前面就會出現這種情況啊,系統按照順序一行一行走完


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

慕尼黑9823340 提問者

謝謝,實際上從答案往回推我也是這樣想的,但是之前3-4提到, a = 'ABC' b = a a = 'XYZ' print b 結果輸出是ABC不是嗎?那我這邊的ranking和L不也是同理嗎?不論print(rangking)放哪兒應該都要出現第一個情況才對呀?就像 a='ABC' b=a a='XYZ' print(b) print(a) b=b+'E' print(b) 輸出的結果是 ABC XYZ ABCE a和b不是應該互不干擾嗎?
2019-02-24 回復 有任何疑惑可以回復我~
#2

慕尼黑9823340 提問者

實際上我自己也試過,只要后面再加個ranking=...就行,就像這樣 rangking=['Adam','Lisa','Bart',] L=rangking rangking=['Adam','Lisa','Bart'] rangking.insert(2, 'Paul') L.append('Paul') print(rangking) print(L) 也做到了互不干擾。但是我就是不懂這個原理是什么。雖然有點鉆牛角尖了,但是真的想知道,求哪位大神可以幫幫忙。剛開始學感覺能做但是理解不了真的很難受
2019-02-24 回復 有任何疑惑可以回復我~
#3

qq_成不了冰了_0 回復 慕尼黑9823340 提問者

字符串在內存中會新開辟一塊空間,所以a重新指向新的地址值,b保持不變。但是list集合的始終是在一個空間上操作。
2019-03-11 回復 有任何疑惑可以回復我~

舉報

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

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

進入課程

對于賦值有疑問

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

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

幫助反饋 APP下載

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

公眾號

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