dict.update()
方法
def change(dict_in):
new_dict = {}
new_dict.update(dict_in)
new_dict['value'] = 50
return new_dict
props = [{'value':12}]
props.append(change(props[-1]))
props
[{'value': 50}, {'value': 50}]
d1.update(d2)
不返回的結果,它爲包括d2
值修改d1
。這就是爲什麼我首先創建一個新的空dict
並將輸入值複製到它。
dict()
方法
def change(dict_in):
new_dict = dict(dict_in)
new_dict['value'] = 50
return new_dict
props = [{'value':12}]
props.append(change(props[-1]))
props
[{'value': 50}, {'value': 50}]
到以前的版本相似,但使用dict
構造
dict
理解方法
def change(dict_in):
new_dict = {k: v for k, v in dict_in.items()}
new_dict['value'] = 50
return new_dict
props = [{'value':12}]
props.append(change(props[-1]))
props
[{'value': 50}, {'value': 50}]
而且使用dict
推導另一個副本方法。
**kwargs
方法
def change(**kwargs):
kwargs['value'] = 50
return kwargs
props = [{'value':12}]
props.append(change(**props[-1]))
props
[{'value': 50}, {'value': 50}]
(在def
線)的函數的形式參數之前**
符號意味着未明確地指定的關鍵字參數將被存儲爲一個dict
。 kwargs
是這個變量的通用名稱。單個*
對於將它們存儲在list
中的位置參數的工作方式類似。
調用函數時的**
表示法意味着相反,將dict
值抽取到關鍵字參數中。與*
和列表相同。
這樣我們將props[-1]
這是原始dict
提取到一組關鍵字參數並創建一個新的dict
與**kwargs
。當你讓Python處理新的dict
創建時,我實際上很喜歡這種方法,但在調用更改時必須記住使用**
。
你可以使用字典 – amrit
'更新的更新方法()'將取代'變化()'函數是有用的,但改變了原來的字典了。 – zezollo