2016-02-12 20 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)