第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過分配:Python

通過分配:Python

尚方寶劍之說 2023-05-23 16:11:59
我想理解以下代碼變體:a = [1, 2, 3]b = ab.append(4)b = ['a', 'b']print(a, b)我的理解是,變量指的是一個對象,該對象包含內(nèi)存中某個位置的a列表,現(xiàn)在指的是所指的同一個對象,通過該鏈接,我們在技術(shù)上追加了一個非 b。[1,2,3]ba輸出:[1, 2, 3, 4] ['a', 'b']我稍微更新了代碼:a = [1, 2, 3]b = ['a', 'b']b = ab.append(4)print(a, b)我的理解:b 現(xiàn)在指的是兩個對象,第一個列表 ['a','b']和第二個列表(a最初指的是)[1,2,3]通過第三行b = a。輸出:[1, 2, 3, 4] [1, 2, 3, 4]最后的代碼變化:a = [1, 2, 3]b = ['a', 'b']b = ab.append(4)a.append(10)print(a, b)根據(jù)我目前的理解,我雖然第 3 行的鏈接b = a只提供了b引用多個對象(它自己的和a's)的能力并且a應(yīng)該只引用一個對象[1,2,3],所以預(yù)期的輸出應(yīng)該是:[1,2,3,4,10] [1,2,3,4]實際輸出:[1, 2, 3, 4, 10] [1, 2, 3, 4, 10]那么第 3 行的這個賦值b = a是否就像一個雙向鏈接?atob的對象也在哪里創(chuàng)建引用?如果我錯了,我希望有人能為我消除這種困惑并糾正我的想法。謝謝。
查看完整描述

3 回答

?
嚕嚕噠

TA貢獻1784條經(jīng)驗 獲得超7個贊

我的理解: b 現(xiàn)在指的是兩個對象, . . .

那是不正確的。一個名稱不能同時與給定范圍內(nèi)的多個對象相關(guān)聯(lián)。

b = a與關(guān)聯(lián)的b對象關(guān)聯(lián)。a該行執(zhí)行后,將沒有任何內(nèi)容被引用['a', 'b'],并且該列表應(yīng)該符合垃圾回收條件,因為它不能再被使用。


查看完整回答
反對 回復(fù) 2023-05-23
?
茅侃侃

TA貢獻1842條經(jīng)驗 獲得超22個贊

不要把對象想成指針,我認為那是你困惑的根源。這不是“b 指向 a”或“a 指向 b”,它與綁定到對象有關(guān)。我認為看看id會有用


>>> a = [1, 2, 3]

>>> id(a)

1833964774216

>>> b = a

>>> id(b)

1833964774216

在這種情況下,a和b都綁定到該列表。因此,任何要列出的突變1833964774216都會反映在兩個對象中。但我可以重新分配(或重新綁定)到一個完全不同的對象


>>> b = [4, 5, 6]

>>> id(b)

1833965089992

>>> b

[4, 5, 6]

這對沒有任何影響,a因為它仍然綁定到原始列表


>>> a

[1, 2, 3]

>>> id(a)

1833964774216


查看完整回答
反對 回復(fù) 2023-05-23
?
神不在的星期二

TA貢獻1963條經(jīng)驗 獲得超6個贊

讓我們了解名稱和對象之間的區(qū)別。在您的例子中,a 和 b 是名稱,分配給 a 和 b 的列表“[1,2,3]”是對象。最初 a = [1,2,3] 并且在 a 被分配給 b 即 b=a 之后,在這種情況下 a 和 b 都綁定到同一個列表對象。這意味著您可以使用名稱 a 或 b 中的任何一個來更改該列表對象的值。

這可以通過將分配給 a 的列表復(fù)制到 b 來解決,

b = a.copy()

這將創(chuàng)建分配給 b 的同一對象的副本


查看完整回答
反對 回復(fù) 2023-05-23
  • 3 回答
  • 0 關(guān)注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號