前言
在python基础知识中有说过,字典是可变的数据类型,其参数又是键对值。setdefault()方法和字典的get()方法在一些地方比较相像,都可以得到给定键对应的值。但setdefault()方法可以在字典中并不包含有给定键的情况下,为给定键设定相应的值。
Python 字典的 setdefault 方法原型如下:
1
|
dict .setdefault(key, default = None )
|
如果给定的 key 在字典中则返回该值,如果不在字典中,就将 key 插入到字典中,并将值设置为指定的 default 参数,default 的缺省值为 None。
使用 setdefault 方法相当于如下的操作:
1
2
3
4
5
|
if key in dict :
reurn dict [key]
else :
dict [key] = default
return default
|
该方法与字典的 get 方法有些相似,但有些区别。dict.get
和 dict.setdefault
方法在 key 存在于字典中时都能返回该值,在 key 不在字典中时,也都能返回缺省的值。两个方法的区别在于,当 key 不在字典中时 setdefault 方法会在字典插入缺省的键值并返回,而 get 方法只返回缺省值,不向字典中插入新的 key。
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
>>> dct = {}
>>> dct
{}
>>> dct[ "name" ] = "huoty"
>>> dct
{ 'name' : 'huoty' }
>>> dct.setdefault( "name" , "esenich" )
'huoty'
>>> dct
{ 'name' : 'huoty' }
>>> dct.setdefault( "fname" , "esenich" )
'esenich'
>>> dct
{ 'name' : 'huoty' , 'fname' : 'esenich' }
>>> dct.setdefault( "addr" )
>>> dct
{ 'name' : 'huoty' , 'fname' : 'esenich' , 'addr' : None }
>>> dct.get( "name" , "xxx" )
'huoty'
>>> dct
{ 'name' : 'huoty' , 'fname' : 'esenich' , 'addr' : None }
>>> dct.get( "age" )
>>> dct
{ 'name' : 'huoty' , 'fname' : 'esenich' , 'addr' : None }
>>> dct.get( "age" , 2 )
2
>>> dct
{ 'name' : 'huoty' , 'fname' : 'esenich' , 'addr' : None }
|
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。