答案页 · 12 道题

Python 列表推导式练习答案

本页汇总 Python 列表推导式 的 12 道练习。先做练习页,再回到这里核对准确答案和原因。

快速答案

本答案页包含 Python 列表推导式 的 4 道选择题、4 道填空题和 4 道输出预测题,每题都给出准确答案和简短解释。

答案已完整展示,建议先尝试作答,再用本页核对。第一次练习最好从互动练习页开始。

01 · 选择题

[n * 2 for n in range(3)] 会得到什么?

  1. [2, 4, 6]
  2. [1, 2, 3]
  3. [0, 1, 2]
  4. [0, 2, 4]正确答案

答案: [0, 2, 4]

为什么: range(3) 产生 0、1、2,每个值乘以 2。

02 · 选择题

推导式中哪个子句负责筛选值?

  1. while
  2. return
  3. if正确答案
  4. for

答案: if

为什么: if 子句只保留满足条件的值。

03 · 选择题

哪种语法可以构建字典推导式?

  1. [k: v for k, v in items]
  2. {k, v for k, v in items}
  3. (k, v for k, v in items)
  4. {k: v for k, v in items}正确答案

答案: {k: v for k, v in items}

为什么: 字典推导式使用花括号,并写成 键: 值。

04 · 选择题

[x for x in "abc"] 会得到什么?

  1. "abc"
  2. [abc]
  3. ['abc']
  4. ['a', 'b', 'c']正确答案

答案: ['a', 'b', 'c']

为什么: 遍历字符串会得到一个个单字符字符串。

05 · 填空题

补全运算符,让每个数字求平方。

squares = [n ____ n for n in range(4)]
print(squares)

答案: *

为什么: n * n 会把每个值乘以自身。

06 · 填空题

补全子句,只保留偶数值。

nums = [1, 2, 3, 4]
evens = [n for n in nums ____ n % 2 == 0]
print(evens)

答案: if

为什么: if 子句会筛选 for 子句产生的值。

07 · 填空题

补全函数,得到每个单词的长度。

words = ["a", "bb"]
lengths = {word: ____(word) for word in words}
print(lengths)

答案: len

为什么: len(word) 返回单词的字符数。

08 · 填空题

补全嵌套循环关键字。

pairs = [(x, y) ____ x in [1, 2] for y in [3, 4]]
print(pairs)

答案: for

为什么: 第二个 for 子句产生内层值。

09 · 输出预测

这段程序打印出什么?

print([n + 1 for n in [1, 2, 3]])

答案: [2, 3, 4]

为什么: 每个值都增加 1。

10 · 输出预测

代码的输出结果是什么?

print([n for n in range(6) if n % 2 == 0])

答案: [0, 2, 4]

为什么: 推导式保留 0、2 和 4。

11 · 输出预测

屏幕上会显示什么?

print({n: n * n for n in range(3)})

答案: {0: 0, 1: 1, 2: 4}

为什么: 字典把 0、1、2 映射到它们的平方。

12 · 输出预测

这段代码会输出什么?

print([len(w) for w in ["a", "bb", "ccc"]])

答案: [1, 2, 3]

为什么: 长度分别是 1、2、3。

先试一遍题目

打开 Python 列表推导式 练习页,用即时反馈回答同样的 12 道题。

练习本课