2016-02-12 21 views
0

我在我的程序中使用'setdefault()',但我不確定它實際上在做什麼...... 所以我問這裏是否有人知道?.setdefault()如何工作?

set default 

感謝

+1

[爲「setdefault」字典方法用例]的可能的複製(http://stackoverflow.com/questions/3483520/use-cases -for-the-setdefault-dict-method) – Altoyyr

+1

你已經看過[Python文檔](https://docs.python.org/3.5/library/stdtypes.html#dict.setdefault)了嗎?如果是這樣,請指出您需要幫助理解的那部分文檔。 (如果沒有,請做!) –

+0

順便說一句,在您的程序中使用您不瞭解的東西並不是一個好主意。目標是理解你的程序,並有一個(正確的!)心理模型來說明它的工作原理。所以,要求+1。 – BrianO

回答

2

的文檔是here

dict.setdefault()類似於dict.get()的「左值」類似物,它通常是一個「右值」(出現在賦值的右側 - 它檢索一個值,而不是改變某物的狀態)。

通俗地說,d.setvalue(key, value)的意思是「給我d[key]什麼,keyd確定,然後分配d[key] = value,只是在時間;?現在給我d[key]

假設d = {'a': 17}。然後

>>> d.setdefault('a', 0) 
17 

這裏,'a'd,所以d.setdefault('a', 0)d不變,並返回d['a']。然而,

>>> d.setdefault('b', 100) 
100 

因爲bdd.setdefault('b', 100)返回100 d[b] = 100d現在有兩個項目,這兩個ab是關鍵:

>>> len(d), d['a'] == 17, d['b'] == 100 
(2, True, True)