jump_p 发表于 2020-5-27 19:05:21

第30讲第0题



这里的setdefault()方法,如果找不到'文件夹'这个key的时候,会增加这个key,并对value复制为0,也就是
{'文件夹':0},然后下面加1,变成{'文件夹':1},第二次循环到type_dict_setdefault('文件夹',0)时,因为
'文件夹'这个key已经存在,不是又把它的value变成0了吗?那不是没法累加了?

Twilight6 发表于 2020-5-27 19:07:34

本帖最后由 Twilight6 于 2020-5-27 19:08 编辑

setdefault 是如果键已存在 就不创建键,不存在就创建 并赋值为0

也就是如果字典中包含有给定键,则返回该键对应的值,否则返回为该键设置的值。

所以不会重新赋值为 0

qiuyouzhi 发表于 2020-5-27 19:07:43

你是不是记混了?
如果字典中包含有给定键,则返回该键对应的值,否则返回为该键设置的值。
也就是说,只有键不存在时,才会将"文件夹"设置为0

ba21 发表于 2020-5-27 19:09:09

这个方法使用说得很清楚了。你的表述是你自己的理解法。

#如果字典里存在该 key,返回它对应的值;如果不存在该 key,创建一个并指定默认值,然后将其指定的这个默认值返回。如果默认值不指定,那么默认的默认值是 None。
页: [1]
查看完整版本: 第30讲第0题