Python 程序的输出 | 第十四套(字典)

141 阅读2分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

  • 难度级别: 中等

注意:所有这些程序的输出都在 Python3 上进行了测试

1) 以下程序的输出是什么?

D = dict()
for x in enumerate(range(2)):
	D[x[0]] = x[1]
	D[x[1]+7] = x[0]
print(D)

a) KeyError 
b) {0:1, 7:0, 1:1, 8:0} 
c) {0:0, 7:0, 1:1, 8:1} 
d) {1:1, 7: 2, 0: 1, 8
答: (c)
解释:  enumerate() 将返回一个元组,循环将有 x = (0, 0), (1, 1)。因此 D[0] = 0, D[1] = 1, D[0 + 7] = D[7] = 0 和 D[1 + 7] = D[8] = 1。 
注意:字典是无序的,所以每个输出中键值对的顺序可能不同。

2) 以下程序的输出是什么?

D = {1 : 1, 2 : '2', '1' : 2, '2' : 3}
D['1'] = 2
print(D[D[D[str(D[1])]]])

a) 2 
b) 3 
c) '2' 
d) KeyError 
答: (b)  
解释: 递归使用简单的键值对,D[1] = 1, str(1) = '1'。所以,D[str(D[1])] = D['1'] = 2, D[2] = '2' and D['2'] = 3.

3) 下面程序的输出是什么?

D = {1 : {'A' : {1 : "A"}, 2 : "B"}, 3 :"C", 'B' : "D", "D": 'E'}
print(D[D[D[1][2]]], end = " ")
print(D[D[1]["A"][2]])

a) DC 
b) EB 
c) DB 
d) E KeyError 
答. (d)  
说明: 上例中使用了键值索引。D[1] = {'A' : {1 : “A”}, 2 : “B”}, D[1][2] = “B”, D[D[1][2]] = D[ “B”] = “D”和 D[“D”] = “E”。D[1] = {'A' : {1 : “A”}, 2 : “B”}, D[1][“A”] = {1 : “A”} 和 D[1][“A ”][2] 不存在,因此 KeyError.

4) 以下程序的输出是什么?

D = dict()
for i in range (3):
	for j in range(2):
		D[i] = j
print(D)

a) {0:0, 1:0, 2:0} 
b) {0:1, 1:1, 2:1} 
c) {0:0, 1:0, 2:0, 0:1, 1 : 1, 2: 1} 
d) TypeError: Immutable object 
答. (b)  
解释: 第一个循环将给 i 0、1 和 2 三个值。在空字典中,在 j 循环中添加和覆盖值,例如。由于覆盖,D[0] = [0] 变为 D[0] = 1。

5) 以下哪个选项可能是以下程序的输出?

D = {1 : [1, 2, 3], 2: (4, 6, 8)}
D[1].append(4)
print(D[1], end = " ")
L = [D[2]]
L.append(10)
D[2] = tuple(L)
print(D[2])

a) [1, 2, 3, 4] [4, 6, 8, 10] 
b) [1, 2, 3, 4] ((4, 6, 8), 10) 
c) '[1, 2, 3, 4] TypeError: tuples are immutable 
d) [1, 2, 3, 4] (4, 6, 8, 10) 
答. (b)  
解释: 在第一部分中使用键值索引并将 4 附加到列表中。由于元组是不可变的,所以在第二部分中,元组被转换为一个列表,最后将值 10 添加到新列表 'L' 中,然后再转换回一个元组。