答案页 · 12 道题

Python 排序与 key 函数练习答案

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

快速答案

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

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

01 · 选择题

哪个调用会返回新的排序列表?

  1. sort(items)
  2. items.sort()
  3. items.reverse()
  4. sorted(items)正确答案

答案: sorted(items)

为什么: sorted 返回新列表;sort 原地修改列表。

02 · 选择题

key 参数的作用是什么?

  1. 选择用于比较的值正确答案
  2. 删除重复值
  3. 原地修改列表
  4. 打印每个元素

答案: 选择用于比较的值

为什么: key 接收元素并返回 Python 用于比较的值。

03 · 选择题

enumerate 提供什么?

  1. 只有值
  2. 只有索引
  3. 排序后的副本
  4. 索引和值正确答案

答案: 索引和值

为什么: 每次迭代都会给出索引和对应的值。

04 · 选择题

list(zip([1, 2], ["a", "b"])) 会得到什么?

  1. [(1, 2), ('a', 'b')]
  2. [1, 2, 'a', 'b']
  3. {'a': 1, 'b': 2}
  4. [(1, 'a'), (2, 'b')]正确答案

答案: [(1, 'a'), (2, 'b')]

为什么: zip 会把两个序列中位置相同的元素配对。

05 · 填空题

补全参数,使排序从大到小。

prices = [3.0, 6.0, 4.5]
print(sorted(prices, ____=True))

答案: reverse

为什么: reverse=True 会反转比较顺序。

06 · 填空题

补全用作 key 的小型匿名函数。

orders = [("latte", 4.5), ("tea", 3.0)]
print(sorted(orders, key=____ item: item[1]))

答案: lambda

为什么: lambda item: item[1] 返回第二个字段作为排序依据。

07 · 填空题

补全函数,为循环添加索引。

names = ["latte", "tea"]
for i, name in ____(names):
    print(i, name)

答案: enumerate

为什么: enumerate(names) 每次迭代都会给出索引和名称。

08 · 填空题

补全函数,把两个序列配对。

names = ["latte", "tea"]
prices = [4.5, 3.0]
for name, price in ____(names, prices):
    print(name, price)

答案: zip

为什么: zip(names, prices) 会把同一位置上的名称和价格配对。

09 · 输出预测

运行结果是什么?

print(sorted([3, 1, 2]))

答案: [1, 2, 3]

为什么: sorted 返回升序排列的值。

10 · 输出预测

这段程序打印出什么?

print(sorted(["bb", "a", "ccc"], key=len))

答案: ['a', 'bb', 'ccc']

为什么: 字符串按长度排序。

11 · 输出预测

代码的输出结果是什么?

print(list(enumerate(["a", "b"])))

答案: [(0, 'a'), (1, 'b')]

为什么: enumerate 把每个值和索引配对。

12 · 输出预测

屏幕上会显示什么?

print(max([4, 9, 2]))

答案: 9

为什么: max 返回最大值。

先试一遍题目

打开 Python 排序与 key 函数 练习页,用即时反馈回答同样的 12 道题。

练习本课