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

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

ChainMap的new_child沒成功

from?collections?import?ChainMap

#?new_child(map)
user_dict1?=?{'a':?'bobby1',?'b':?'bobby2'}
user_dict2?=?{'c':?'bobby3',?'d':?'bobby4'}
new_dict?=?ChainMap(user_dict1,?user_dict2)
new_dict.new_child({'aa':?'aa',?'bb':?'bb'})
for?key,?vaule?in?new_dict.items():
????print(key,?vaule)

https://img1.sycdn.imooc.com/67038dfa0001441f07260271.jpg

使用的是Python3.8

正在回答

1 回答

根據你的描述,你在嘗試使用ChainMapnew_child方法來創建一個新的子映射。然而,從你的輸出結果來看,似乎并沒有成功地添加新的鍵值對到ChainMap中。

首先,讓我們回顧一下ChainMap的工作原理。ChainMap允許你將多個字典鏈接在一起,形成一個單一的視圖。當你訪問或修改這個視圖時,它會按照鏈表的順序查找或更新相應的字典。

現在,我們來看一下你的代碼:

from?collections?import?ChainMap

#?new_child(map)
user_dict1?=?{'a':?'bobby1',?'b':?'bobby2'}
user_dict2?=?{'c':?'bobby3',?'d':?'bobby4'}
new_dict?=?ChainMap(user_dict1,?user_dict2)
new_dict.new_child({'aa':?'aa',?'bb':?'bb'})
for?key,?value?in?new_dict.items():
????print(key,?value)

問題的核心在于你可能誤解了new_child方法的作用。new_child方法實際上是在當前ChainMap的基礎上創建一個新的ChainMap實例,并將給定的字典作為新實例的第一個映射。這意味著原始的ChainMap不會被改變,而是返回了一個新的ChainMap對象。

因此,你需要將new_child方法的返回值賦值給一個新的變量,然后遍歷這個新的ChainMap對象。下面是修復后的代碼:

from?collections?import?ChainMap

#?new_child(map)
user_dict1?=?{'a':?'bobby1',?'b':?'bobby2'}
user_dict2?=?{'c':?'bobby3',?'d':?'bobby4'}
new_dict?=?ChainMap(user_dict1,?user_dict2)
new_child_dict?=?new_dict.new_child({'aa':?'aa',?'bb':?'bb'})??#?將返回的新ChainMap對象賦值給new_child_dict
for?key,?value?in?new_child_dict.items():??#?遍歷新的ChainMap對象
????print(key,?value)

這樣,你就可以看到aabb這兩個鍵值對已經被添加到了新的ChainMap對象中。希望這能解決你的問題!

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

ChainMap的new_child沒成功

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

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

幫助反饋 APP下載

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

公眾號

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