牛客网专项练习30天Pytnon篇第21天

1.在Python3中,下列程序运行结果为:(B) 

dicts = {}
dicts[(1, 2)] = {3, (4, 5)}
print(dicts)

A.报错

B.{(1, 2): {(4, 5), 3}}

C.{(1, 2): [(4, 5), 3]}

D.{(1, 2): [3, 4, 5]}

解析:

       根据题意字典添加元素方法为 dict[key] = value ,得到key 是:(1,2)  ,value是:{3, (4, 5)},由于{3, (4, 5)},它是一个集合,集合内部会自动排序,元组在集合里面会往前放,所以变成:{(4, 5), 3}。所以最后的结果 key:value  = (1,2):{(4,5),3}。


2.在Python3中,程序运行结果为:(C)

tmp = dict.fromkeys(['a', 'b'], 4)
print(tmp)

A{('a', 'b'): 4}

B{'a': 4}

C{'a': 4, 'b': 4}

D{ 'b': 4}

解析:

       本题目主要考察字典的 fromkeys 这个函数的使用,fromkeys(seq,value),以seq做为键,这里键为列表,是一个元素,value为值,字典是以键值对的形式呈现出来的。所以,这个结果就为:{'a':4,'b':4}。


3.在Python3中,程序运行结果为:(C)

kvps = { '1' : 1, '2' : 2 }
theCopy = kvps.copy()
kvps['1'] = 5
sum = kvps['1'] + theCopy['1']
Print(sum)

A.1

B.2 

C.6 

D.10

解析:

       浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象;深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。两者的区别在于对‘对象的拷贝’,对数值则拷贝后完全是独立的。因此改变dict中普通数值,浅拷贝与深拷贝结果相同。另一个copy对象并不会跟着改变。


4.以下代码输出为:(D)

list1 = {'1':1,'2':2}
list2 = list1
list1['1'] = 5
sum = list1['1'] + list2['1']
print(sum)

A.1

B.2

C.7

D.10

解析:

       根据可变数据类型特性:list2 = list1赋值引用,list2 和 list1 都指向同一个对象。list1 和 list2 指向的是同一块内存空间;list1['1']=5 原内存空间中'1'的value值被改变,原内存空间存储的数据变为:{'1': 5, '2': 2};因此 sum = list1['1']+list2['1']=5+5=10。


5.以下程序输出为:(A)

info = {'name': '小新', 'id': 100}
print(info.get('age'))
info['age'] = 18
print(info.get('age'))

A.None 18 

B.None None 

C.编译错误 

D.运行错误

解析:

  本题利用字典的dict.get(key[, value])方法查找 key(键),key( 字典中要查找的键),value(可选,如果指定键的值不存在时,返回该默认值)。返回指定键的值,如果键不在字典中返回默认值 None 或者设置的默认值。dict.get(key) 方法在 key(键)不在字典中时,可以返回默认值 None 或者设置的默认值。dict[key] 在 key(键)不在字典中时,会触发 KeyError 异常。


75c58720ab194f3490bc38d381d25e8b.jpeg

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

漫步桔田

编程界的一枚小学生!感谢支持!

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

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

打赏作者

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

抵扣说明:

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

余额充值