Python进阶之路 setdefault方法

6.3.7 setdefault方法

setdefault方法用于设置key的默认值。该方法接收两个参数,第1个参数表示key,第2个参数表示默认值。如果key在字典中不存在,那么setdefault方法会向字典中添加这个key,并用第2个参数作为key的值。该方法会返回这个默认值。如果未指定第2个参数,那么key的默认值是None。如果字典中已经存在这个key,setdefault不会修改key原来的值,而且该方法会返回key原来的值。

[例 6.11] 本例演示了如何使用setdefault方法向字典中添加新的key-value对,以及获取原有key的值。

#定义一个空字典
dict = {}

print(dict.setdefault('name','Bill'))
#向字典中添加一个名为name的key,默认值是Bill,输出结果:Bill

print(dict)
#输出结果:{'name': 'Bill'}

print(dict.setdefault('name','Mike'))
#并没有改变name的值,输出结果:Bill

print(dict)
#输出结果:{'name': 'Bill'}

#向字典中添加一个名为age的key,默认值是None,输出结果:None
print(dict.setdefault('age'))

print(dict)
#输出结果:{'name': 'Bill', 'age': None}

输出结果:

Bill
{'name': 'Bill'}
Bill
{'name': 'Bill'}
None
{'name': 'Bill', 'age': None}

可以看到,上面的代码中使用setdefault方法第1次设置name时,向字典中添加了一个新的key-value对,而第2次设置name时,字典元素并没有任何变化。而setdefault方法返回了第1次设置name的值(Bill),也就是name原来的值。

可能会有人有这样的疑问:这个setdefault方法不就是向字典中添加一个key-value对吗?这里所谓的默认值(setdefault方法第2个参数)其实就是key的值。与dict[key]=value有什么区别?

其实如果key在字典中不存在,setdefault(key,value)方法与dict[key] = value形式是完全一样的,区别就是当key在字典中存在的情况下。setdefault(key,value)并不会改变原值,而dict[key] = value是会改变原值的。所以setdefault方法主要用于向字典中添加一个key-value对,而不是修改key对应的值。

  • 28
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值