本答案页包含 Python enumerate 与 zip 的 4 道选择题、4 道填空题和 4 道输出预测题,每题都给出准确答案和简短解释。
答案已完整展示,建议先尝试作答,再用本页核对。第一次练习最好从互动练习页开始。
enumerate 每轮会产生什么?
答案: 一个索引和一个元素
为什么: enumerate 会产生包含位置和值的二元组。
这段程序打印出什么?
print(list(enumerate(["a", "b"], start=1)))答案: [(1, 'a'), (2, 'b')]
为什么: start=1 让编号从一开始,list() 会显示每个二元组。
两个列表长度不同时,zip 会怎样?
答案: 在最短的列表处停止
为什么: 只要有一个输入用完,zip 就会停止。
哪个循环会打印 1 Ada 和 2 Grace?
答案: for n, name in enumerate(names, start=1):
为什么: enumerate 先接收可迭代对象,start 是关键字参数。
补全循环,让每个元素都得到索引。
items = ["a", "b"]
for i, item in ____(items):
print(i, item)答案: enumerate
为什么: enumerate 会同时给出索引和元素。
补全让编号从一开始的参数。
for n, item in enumerate(["a", "b"], ____=1):
print(n, item)答案: start
为什么: 这个关键字参数叫 start。
补全把两个列表配对起来的函数。
names = ["Ada", "Grace"]
scores = [92, 88]
pairs = list(____(names, scores))答案: zip
为什么: zip 会并行遍历两个可迭代对象。
补全调用,让第一项是 (0, 'a')。
print(next(____(["a"])))答案: enumerate
为什么: next() 向 enumerate 请求第一对值。
代码的输出结果是什么?
print(list(enumerate(["x", "y"])))答案: [(0, 'x'), (1, 'y')]
为什么: 默认从零开始,list() 会显示这些二元组。
屏幕上会显示什么?
print(list(zip([1, 2], ["a"])))答案: [(1, 'a')]
为什么: 较短输入用完时 zip 就停止,所以只剩一个二元组。
这段代码会输出什么?
print([i for i, _ in enumerate("abc", start=2)])答案: [2, 3, 4]
为什么: 即使没有使用字符,索引仍然是 2、3、4。
运行结果是什么?
print(dict(zip(["a", "b"], [1, 2])))答案: {'a': 1, 'b': 2}
为什么: zip 生成二元组,dict 把每个二元组变成键和值。
先试一遍题目
打开 Python enumerate 与 zip 练习页,用即时反馈回答同样的 12 道题。