s={}
s.setdefault('3','6')
'6'
s
{'3': '6'}
sss={}.setdefault('3','6')
sss
'6'
为啥两个都是字典输出内容不一样
s={}
s.setdefault('3','6')
'6'
s
{'3': '6'}
sss={}.setdefault('3','6')
sss
'6'
为啥两个都是字典输出内容不一样
第一个你打印的是s对象,是个字典
第二个你打印的是{}调用setdefault()函数的返回值
看看下边这个例子你就明白了
a={}
b=a.setdefault('1','2')
print(a)
print(b)
输出结果是:
{'1': '2'}
2
setdefaut
当key
存在直接返回value
,key
不存在则先存入dict
,然后返回key
对应的value
,s
引用的是字典,sss
在这里引用的则是setdefault
的返回值也就是'6'
def setdefault(self, k, d=None): # real signature unknown; restored from __doc__
""" D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D """
pass
4 回答4.4k 阅读✓ 已解决
1 回答3.1k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.4k 阅读✓ 已解决
1 回答3.9k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
setdefault
setdefault 的返回值是第二个参数,不是字典本事。
sss={}.setdefault('3','6')
这个是把 setdefault 的返回值赋给了sss
。