答案頁 · 12 道題

Python 排序與 key 函式練習答案

本頁彙整 Python 排序與 key 函式 的 12 道練習。先做練習頁,再回到這裡核對準確答案和原因。

快速答案

本答案頁包含 Python 排序與 key 函式 的 4 道選擇題、4 道填空題和 4 道輸出預測題,每題都給出準確答案和簡短解釋。

答案已完整展示,建議先嘗試作答,再用本頁核對。第一次練習最好從互動練習頁開始。

01 · 選擇題

哪個呼叫會回傳新的排序列表?

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

答案: 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, 'a'), (2, 'b')]正確答案
  2. {'a': 1, 'b': 2}
  3. [(1, 2), ('a', 'b')]
  4. [1, 2, 'a', '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 道題。

練習本課