快速答案
本答案页包含 Python 列表推导式 的 4 道选择题、4 道填空题和 4 道输出预测题,每题都给出准确答案和简短解释。
答案已完整展示,建议先尝试作答,再用本页核对。第一次练习最好从互动练习页开始。
[n * 2 for n in range(3)] 会得到什么?
答案: [0, 2, 4]
为什么: range(3) 产生 0、1、2,每个值乘以 2。
推导式中哪个子句负责筛选值?
答案: if
为什么: if 子句只保留满足条件的值。
哪种语法可以构建字典推导式?
答案: {k: v for k, v in items}
为什么: 字典推导式使用花括号,并写成 键: 值。
[x for x in "abc"] 会得到什么?
答案: ['a', 'b', 'c']
为什么: 遍历字符串会得到一个个单字符字符串。
补全运算符,让每个数字求平方。
squares = [n ____ n for n in range(4)]
print(squares)答案: *
为什么: n * n 会把每个值乘以自身。
补全子句,只保留偶数值。
nums = [1, 2, 3, 4]
evens = [n for n in nums ____ n % 2 == 0]
print(evens)答案: if
为什么: if 子句会筛选 for 子句产生的值。
补全函数,得到每个单词的长度。
words = ["a", "bb"]
lengths = {word: ____(word) for word in words}
print(lengths)答案: len
为什么: len(word) 返回单词的字符数。
补全嵌套循环关键字。
pairs = [(x, y) ____ x in [1, 2] for y in [3, 4]]
print(pairs)答案: for
为什么: 第二个 for 子句产生内层值。
这段程序打印出什么?
print([n + 1 for n in [1, 2, 3]])答案: [2, 3, 4]
为什么: 每个值都增加 1。
代码的输出结果是什么?
print([n for n in range(6) if n % 2 == 0])答案: [0, 2, 4]
为什么: 推导式保留 0、2 和 4。
屏幕上会显示什么?
print({n: n * n for n in range(3)})答案: {0: 0, 1: 1, 2: 4}
为什么: 字典把 0、1、2 映射到它们的平方。
这段代码会输出什么?
print([len(w) for w in ["a", "bb", "ccc"]])答案: [1, 2, 3]
为什么: 长度分别是 1、2、3。
先试一遍题目
打开 Python 列表推导式 练习页,用即时反馈回答同样的 12 道题。