【小白从小学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