答案页 · 12 道题

Python collections练习答案

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

快速答案

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

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

01 · 选择题

Counter(votes) 返回什么?

  1. 值到次数的映射正确答案
  2. 唯一值的集合
  3. 排序后的值列表
  4. 值组成的元组

答案: 值到次数的映射

为什么: Counter 是字典子类,值表示出现次数。

02 · 选择题

这段程序打印出什么?

from collections import Counter
print(Counter("aba")["a"])
  1. 3
  2. 0
  3. 1
  4. 2正确答案

答案: 2

为什么: 字符串里有两个 a;缺失的键才会返回零。

03 · 选择题

访问缺失键时,defaultdict(list) 会做什么?

  1. 抛出 KeyError
  2. 创建一个空列表正确答案
  3. 返回 None
  4. 删除键

答案: 创建一个空列表

为什么: list 工厂提供默认值,并把这个键插入字典。

04 · 选择题

哪个 deque 方法会删除最左边的元素?

  1. popleft()正确答案
  2. removeleft()
  3. shift()
  4. pop()

答案: popleft()

为什么: popleft 删除并返回双端队列左端的元素。

05 · 填空题

补全计数容器的导入。

from collections import ____
print(Counter(["a", "a"]))

答案: Counter

为什么: Counter 是 collections 中的计数字典。

06 · 填空题

补全返回最高频项的方法。

from collections import Counter
counts = Counter(["a", "b", "a"])
print(counts.____(1))

答案: most_common

为什么: most_common 按次数从高到低返回条目。

07 · 填空题

补全列表型 defaultdict 的工厂。

from collections import defaultdict
groups = defaultdict(____)

答案: list

为什么: 传入 list 会为缺失键创建空列表。

08 · 填空题

补全删除队首元素的方法。

from collections import deque
queue = deque([1, 2])
queue.____()

答案: popleft

为什么: popleft 从双端队列左端删除元素。

09 · 输出预测

代码的输出结果是什么?

from collections import Counter
print(Counter("abca")["a"])

答案: 2

为什么: 字符 a 出现了两次。

10 · 输出预测

屏幕上会显示什么?

from collections import Counter
print(Counter([1, 1, 2]).most_common(1))

答案: [(1, 2)]

为什么: 出现最多的是 1,次数为 2。

11 · 输出预测

这段代码会输出什么?

from collections import defaultdict
d = defaultdict(list)
d["x"].append(1)
print(dict(d))

答案: {'x': [1]}

为什么: 缺失键得到空列表,然后被追加一个元素。

12 · 输出预测

运行结果是什么?

from collections import deque
q = deque([1, 2, 3])
q.popleft()
print(list(q))

答案: [2, 3]

为什么: popleft 删除第一个元素,剩下二和三。

先试一遍题目

打开 Python collections 练习页,用即时反馈回答同样的 12 道题。

练习本课