- 难度级别: 中等
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 语句中的条件不成立,因此列表仍然是空的。
如果大家发现任何不正确的地方,可以在下方评论区告诉我,互相学习,共同进步!