python字典中指定键对应的值setdefault()函数

【小白从小学Python、C、Java】

【Python全国计算机等级考试】

【Python数据分析考试必会题】

● 标题与摘要

python字典中指定键对应的值

setdefault()函数

● 选择题

以下python代码输出的结果中哪一项是正确的?

dict1 = {'a':1,'b':2}

dict1.setdefault('c','new')

print(dict1)

A {'a':1,'b':2,'c':'new'}

B {'a':1,'b':2,'c':'None'}

C {'a':1,'b':2}

D 'new'

● 问题解析

1.dict1.setdefault(key,[value])函数的功能是:

1.1.当不写可选参数[value]时,value的默认值是None:

1.1.1.如果dict1不存在键key,则没有返回值,将键值对key:None加入dict1;

1.1.2.如果dict1中存在键key,则返回键key对应的值;

1.2.当写可选参数[value]时:

1.2.1.如果dict1不存在键key,将键值对key:value加入dict1,返回value;

1.2.2.如果dict1中存在键key,键key的值不发生变化(value没有作用),返回dict1中键key原来的值(不是value)。

2.setdefault()函数与get()函数进行对比:get()函数在指定键不存在于字典中时,不会向字典中添加新的键。而setdefault()函数在指定键不存在于字典中时,会向字典中添加新的键,同时将该键的键值设为函数中定义的值,若函数中未定义default值,则以默认值None作为该键的键值

3.在本题中首先定义字典dict1 = {'a':1,'b':2},通过dict1.setdefault('c','new')可知,在dict1中不存在键为c的键值对。因此将'c'作为新的键添加到原字典中,同时将'new'作为新键值对的键值一并添加的原字典中,因此形成的新的字典为{'a':1,'b':2,'c':'new'}。

● 附图 

图1:setafault(key,[value])函数的功能,不写可选参数value的情况:

 

图2:setafault(key,[value])函数的功能,使用可选参数value的情况:

图3:setafault()与get()函数进行对比 

● 附图代码

# 图1:题目运行结果及dict1.setafault(key,[value])函数的功能

# 1.dict1.setdefault(key,[value])函数的功能是:

# 1.1.当不写可选参数[value]时,value的默认值是None:

# 1.1.1.如果dict1不存在键key,

# 则没有返回值,将键值对key:None加入dict1;

dict1 = {'a':1,'b':2}

dict1.setdefault('c')

print(dict1)

# 1.1.2.如果dict1中存在键key,则返回键key对应的值;

dict1 = {'a':1,'b':2}

dict1.setdefault('b')

print(dict1)

# 图2:代码运行结果及dict1中存在键key时函数的返回情况

# 1.2.当写可选参数[value]时:

# 1.2.1.如果dict1不存在键key,

# 将键值对key:value加入dict2,并返回value;

dict1 = {'a':1,'b':2}

dict1.setdefault('c','new')

print(dict1)    #代码运行结果

# 1.2.2.如果dict1中存在键key,

# 键key的值不发生变化(value没有作用),

# 返回dict1中键key原来的值(不是value)。

dict1 = {'a':1,'b':2}

dict1.setdefault('b','new')

print(dict1)

# 图3:setafault()与get()函数进行对比

 # 2.myDict.get(key,[value])函数的功能是:

# 2.1.当get的键不存在时

# 2.1.1.给出value值,则返回value值

dict2 = {'a':1,'b':2}

print(dict2.get('c','new'))

# 2.1.2.不给出value值,则返回None

print(dict2.get('c'))

# 2.2.当get的键存在时

# 2.2.1.给出value值,则key对应的真实值,不返回value值

dict2.get('b','new')

# 2.2.2.不给出value值,则key对应的真实值

dict2.get('b')

● 正确答案

A

● 温馨期待

期待大家提出宝贵建议,互相交流,收获更大,助教:mmy

 欢迎大家转发,一起传播知识和正能量,帮助到更多人。期待大家提出宝贵改进建议,互相交流,收获更大。辛苦大家转发时注明出处(也是咱们公益编程交流群的入口网址),刘经纬老师共享知识相关文件下载地址为:http://liujingwei.cn

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘经纬老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值