答案頁 · 12 道題

Python 列表推導式練習答案

本頁彙整 Python 列表推導式 的 12 道練習。先做練習頁,再回到這裡核對準確答案和原因。

快速答案

本答案頁包含 Python 列表推導式 的 4 道選擇題、4 道填空題和 4 道輸出預測題,每題都給出準確答案和簡短解釋。

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

01 · 選擇題

[n * 2 for n in range(3)] 會得到什麼?

  1. [1, 2, 3]
  2. [0, 2, 4]正確答案
  3. [0, 1, 2]
  4. [2, 4, 6]

答案: [0, 2, 4]

為什麼: range(3) 產生 0、1、2,每個值乘以 2。

02 · 選擇題

推導式中哪個子句負責篩選值?

  1. if正確答案
  2. for
  3. return
  4. while

答案: if

為什麼: if 子句只保留滿足條件的值。

03 · 選擇題

哪種語法可以建構字典推導式?

  1. (k, v for k, v in items)
  2. {k: v for k, v in items}正確答案
  3. {k, v for k, v in items}
  4. [k: v for k, v in items]

答案: {k: v for k, v in items}

為什麼: 字典推導式使用花括號,並寫成 鍵: 值。

04 · 選擇題

[x for x in "abc"] 會得到什麼?

  1. "abc"
  2. ['a', 'b', 'c']正確答案
  3. [abc]
  4. ['abc']

答案: ['a', 'b', 'c']

為什麼: 走訪字串會得到一個個單字元字串。

05 · 填空題

補全運算子,讓每個數字求平方。

squares = [n ____ n for n in range(4)]
print(squares)

答案: *

為什麼: n * n 會把每個值乘以自身。

06 · 填空題

補全子句,只保留偶數值。

nums = [1, 2, 3, 4]
evens = [n for n in nums ____ n % 2 == 0]
print(evens)

答案: if

為什麼: if 子句會篩選 for 子句產生的值。

07 · 填空題

補全函式,得到每個單字的長度。

words = ["a", "bb"]
lengths = {word: ____(word) for word in words}
print(lengths)

答案: len

為什麼: len(word) 回傳單字的字元數。

08 · 填空題

補全巢狀迴圈關鍵字。

pairs = [(x, y) ____ x in [1, 2] for y in [3, 4]]
print(pairs)

答案: for

為什麼: 第二個 for 子句產生內層值。

09 · 輸出預測

這段程式列印出什麼?

print([n + 1 for n in [1, 2, 3]])

答案: [2, 3, 4]

為什麼: 每個值都增加 1。

10 · 輸出預測

程式碼的輸出結果是什麼?

print([n for n in range(6) if n % 2 == 0])

答案: [0, 2, 4]

為什麼: 推導式保留 0、2 和 4。

11 · 輸出預測

螢幕上會顯示什麼?

print({n: n * n for n in range(3)})

答案: {0: 0, 1: 1, 2: 4}

為什麼: 字典把 0、1、2 映射到它們的平方。

12 · 輸出預測

這段程式碼會輸出什麼?

print([len(w) for w in ["a", "bb", "ccc"]])

答案: [1, 2, 3]

為什麼: 長度分別是 1、2、3。

先試一遍題目

打開 Python 列表推導式 練習頁,用即時回饋回答同樣的 12 道題。

練習本課