3 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊
這是因?yàn)樵赑ython中,變量(名稱)只是對(duì)單個(gè)對(duì)象的引用。當(dāng)您指定dict_a = dict_b
,你真的復(fù)制存儲(chǔ)器地址(或指針,如果你愿意)從dict_b
到dict_a
。那個(gè)詞典還有一個(gè)例子。
要獲得所需的行為,請(qǐng)使用該dict.copy
方法,或者copy.deepcopy
在您的dict可能具有嵌套的dicts或其他嵌套對(duì)象時(shí)使用。
>>> a = {1:2}>>> b = a.copy()>>> b{1: 2}>>> b[3] = 4>>> a{1: 2}>>> b{1: 2, 3: 4}>>>

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
即使
>>> dict_a, dict_b, dict_c = {}, {}, {}
在大多數(shù)情況下是正確的方法,當(dāng)它超過(guò)3時(shí)看起來(lái)很奇怪
想像
>>> a, b, c, d, e, f = {}, {}, {}, {}, {}, {}
如果我想初始化超過(guò)3件事,我會(huì)使用
>>> a, b, c, d, e, f, = [dict() for x in range(6)]
注意:不要使用[{} for x in range(6)]

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
正如danben先前所說(shuō),你只是將同一個(gè)dict復(fù)制到3個(gè)變量中,這樣每個(gè)變量都會(huì)引用同一個(gè)對(duì)象。
要獲得所需的行為,您應(yīng)該在每個(gè)變量中實(shí)例化不同的dict:
>>> dict_a, dict_b, dict_c = {}, {}, {}>>> dict_c['hello'] = 'goodbye'>>> print dict_a{}>>> print dict_b{}>>> print dict_c{'hello': 'goodbye'}>>>
添加回答
舉報(bào)