• 难度级别: 中等

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

data = [2, 3, 9]
temp = [[x for x in[data]] for x in range(3)]
print (temp)

a) [[[2, 3, 9]], [[2, 3, 9]], [[2, 3, 9]]]

b) [[2, 3, 9], [2, 3, 9 ], [2, 3, 9]]

c) [[[2, 3, 9]], [[2, 3, 9]]]

d) 这些都不是

答: (a)

解释:  [x for x in[data] 返回一个复制列表数据中的值的新列表,外部 for 语句将新创建的列表打印 3 次。

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

data = [x for x in range(5)]
temp = [x for x in range(7) if x in data and x%2==0]
print(temp)

a) [0, 2, 4, 6]

b) [0, 2, 4]

c) [0, 1, 2, 3, 4, 5]

d) 运行时错误

答: (b)

解释:  is 语句检查值是否在列表数据中,如果存在,是否能被 2 整除。它对 (0, 7) 中的 x 这样做。

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

temp = ['Haiyong', 'for', 'Code']
arr = [i[0].upper() for i in temp]
print(arr)

a) ['H', 'F', 'C']

b) ['Haiyong']

c) ['Haiyong', 'FOR', 'Code']

d) 编译错误

答: (a)

解释: 变量 i 用于迭代列表 temp 中的每个元素。i[0] 表示 i 的第 0 个索引处的字符,.upper() 函数用于将 i[0] 处的字符大写。

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

temp = 'Haiyong 22536 for 445 Code'
data = [x for x in (int(x) for x in temp if x.isdigit()) if x%2 == 0]
print(data)

a) [2, 2, 6, 4, 4]

b) 编译错误

c) 运行时错误

d) ['2', '2', '5', '3', '6', '4', '4 ', '5']

答。 (a)

解释: 这是一个嵌套列表理解的例子。创建的内部列表包含 temp 中的整数列表。外部列表仅获取那些是 2 的倍数的 x。

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

data = [x for x in (x for x in 'Haiyong 22966 for Code' if x.isdigit()) if
(x in ([x for x in range(20)]))]
print(data)

a) [2, 2, 9, 6, 6]

b) []

c) 编译错误

d) 运行时错误

答。 (b)

解释: 由于这里的 x 没有被转换为 int,所以 if 语句中的条件不成立,因此列表仍然是空的。

如果大家发现任何不正确的地方,可以在下方评论区告诉我,互相学习,共同进步!