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

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

Python將多個變量分配給相同的值?列出行為

Python將多個變量分配給相同的值?列出行為

尚方寶劍之說 2019-12-16 11:24:13
我試圖使用如下所示的多重賦值來初始化變量,但是我對此行為感到困惑,我希望分別重新賦值列表,我的意思是b [0]和c [0]等于0。a=b=c=[0,3,5]a[0]=1print(a)print(b)print(c)結(jié)果是:[1、3、5] [1、3、5] [1、3、5]那是對的嗎?多重分配應(yīng)該使用什么?有什么不同呢?d=e=f=3e=4print('f:',f)print('e:',e)結(jié)果:('f:',3)('e:',4)
查看完整描述

4 回答

?
拉風(fēng)的咖菲貓

TA貢獻(xiàn)1995條經(jīng)驗 獲得超2個贊

咳嗽


>>> a,b,c = (1,2,3)

>>> a

1

>>> b

2

>>> c

3

>>> a,b,c = ({'test':'a'},{'test':'b'},{'test':'c'})

>>> a

{'test': 'a'}

>>> b

{'test': 'b'}

>>> c

{'test': 'c'}

>>> 


查看完整回答
反對 回復(fù) 2019-12-16
?
侃侃無極

TA貢獻(xiàn)2051條經(jīng)驗 獲得超10個贊

是的,這是預(yù)期的行為。a,b和c都設(shè)置為同一列表的標(biāo)簽。如果需要三個不同的列表,則需要分別分配它們。您可以重復(fù)顯示列表,也可以使用多種方式之一復(fù)制列表:


b = a[:] # this does a shallow copy, which is good enough for this case

import copy

c = copy.deepcopy(a) # this does a deep copy, which matters if the list contains mutable objects

Python中的賦值語句不復(fù)制對象-它們將名稱綁定到對象,并且對象可以具有您設(shè)置的盡可能多的標(biāo)簽。在第一次編輯中,更改a [0],您將更新a,b和c都引用的單個列表中的一個元素。在第二次更改e中,您將e切換為其他對象的標(biāo)簽(4而不是3)。


查看完整回答
反對 回復(fù) 2019-12-16
?
眼眸繁星

TA貢獻(xiàn)1873條經(jīng)驗 獲得超9個贊

在python中,一切都是對象,也是“簡單”的變量類型(int,float等)。


更改變量值時,實際上是更改了它的指針,如果在兩個變量之間進(jìn)行比較,則會比較它們的指針。(要清楚,指針是物理計算機(jī)內(nèi)存中存儲變量的地址)。


結(jié)果,當(dāng)您更改內(nèi)部變量值時,將更改它在內(nèi)存中的值,并且會影響指向該地址的所有變量。


例如,當(dāng)您這樣做時:


a = b =  5 

這意味著a和b指向內(nèi)存中包含值5的相同地址,但是在執(zhí)行以下操作時:


a = 6

它不會影響b,因為a現(xiàn)在指向包含6的另一個存儲位置,而b仍然指向包含5的存儲地址。


但是,當(dāng)您這樣做時:


a = b = [1,2,3]

a和b再次指向相同的位置,但是不同之處在于,如果更改列表值之一:


a[0] = 2

它會更改a所指向的內(nèi)存的值,但是a仍指向與b相同的地址,結(jié)果b也將更改。


查看完整回答
反對 回復(fù) 2019-12-16
  • 4 回答
  • 0 關(guān)注
  • 947 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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