Python大雜燴5:值和引用所引起的動態(tài)修改list值問題

1.場景

有一天全跨,同事問我:“我在動態(tài)改變一個list值的時候總是不遂人愿闷袒,你幫我看看是哪里出了問題卸伞?”
她的代碼是這么寫的:

#fromTongshi.py
#2020.06.07
language = ["Python",0]
scores = [75,80,90]

result = []
for score in scores:
    language[-1] = score
    result.append(language)
print(result)

她想象的結(jié)果是這樣的:

[['Python', 75], ['Python', 80], ['Python', 90]]

實際上結(jié)果是這樣的:

[['Python', 90], ['Python', 90], ['Python', 90]]

問題出在哪里呢速缨?

2.值和引用

在Python里褒翰,數(shù)據(jù)類型分為2種欲间,可變類型不可變類型楚里。
可變類型:字典(dict), 集合(set), 列表(list)
不可變類型:整型(int), 字符串(string), 浮點型(float), 元組(tuple)

可變類型的對象在被調(diào)用時傳遞的是該對象的值。
不可變類型的對象在被調(diào)用時傳遞的是該對象的位于內(nèi)存中的數(shù)據(jù)的引用猎贴。

來解釋一下同事的難題:
language是一個可變類型的對象班缎。在result.append(language)以后,language將它的引用傳遞給了result她渴,
在第1次append以后达址,result有了1個language的引用,此時result=[language的引用]趁耗,而此時language的引用指向的數(shù)據(jù)是['Python', 75]沉唠。
在第2次append以后,result有了2個language的引用苛败,此時result=[language的引用, language的引用]满葛,而此時language的引用指向的數(shù)據(jù)是['Python', 80]
在第3次append以后著拭,result有了3個language的引用纱扭,此時result=[language的引用, language的引用,language的引用]儡遮,而此時language的引用指向的數(shù)據(jù)是['Python', 90]乳蛾。

3.曲線救國

如果真的想實現(xiàn)這個功能應(yīng)該怎么做呢?
我們可以利用一個中間變量,來保證每次循環(huán)時都重新生成這個變量肃叶。
如:

language = ["Python",0]
scores = [75,80,90]

result = []
for score in scores:
    temp = language[:-1]
    temp.append(score)
    result.append(temp)
print(result)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蹂随,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子因惭,更是在濱河造成了極大的恐慌岳锁,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蹦魔,死亡現(xiàn)場離奇詭異激率,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)勿决,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門乒躺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人低缩,你說我怎么就攤上這事嘉冒。” “怎么了咆繁?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵讳推,是天一觀的道長。 經(jīng)常有香客問我玩般,道長银觅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任壤短,我火速辦了婚禮设拟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘久脯。我一直安慰自己纳胧,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布帘撰。 她就那樣靜靜地躺著跑慕,像睡著了一般甲捏。 火紅的嫁衣襯著肌膚如雪褐桌。 梳的紋絲不亂的頭發(fā)上州既,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天窥淆,我揣著相機(jī)與錄音,去河邊找鬼碎连。 笑死训桶,一個胖子當(dāng)著我的面吹牛不脯,可吹牛的內(nèi)容都是我干的综苔。 我是一名探鬼主播惩系,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼位岔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了堡牡?” 一聲冷哼從身側(cè)響起抒抬,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎晤柄,沒想到半個月后擦剑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡芥颈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年惠勒,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浇借。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡捉撮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出妇垢,到底是詐尸還是另有隱情,我是刑警寧澤肉康,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布闯估,位于F島的核電站,受9級特大地震影響吼和,放射性物質(zhì)發(fā)生泄漏涨薪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一炫乓、第九天 我趴在偏房一處隱蔽的房頂上張望刚夺。 院中可真熱鬧,春花似錦末捣、人聲如沸侠姑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽莽红。三九已至,卻和暖如春邦邦,著一層夾襖步出監(jiān)牢的瞬間安吁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工燃辖, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留鬼店,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓黔龟,卻偏偏與公主長得像妇智,于是被迫代替她去往敵國和親确沸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,871評論 2 354