快速答案
本答案頁包含 Python 列表推導式 的 4 道選擇題、4 道填空題和 4 道輸出預測題,每題都給出準確答案和簡短解釋。
答案已完整展示,建議先嘗試作答,再用本頁核對。第一次練習最好從互動練習頁開始。
[n * 2 for n in range(3)] 會得到什麼?
答案: [0, 2, 4]
為什麼: range(3) 產生 0、1、2,每個值乘以 2。
推導式中哪個子句負責篩選值?
答案: if
為什麼: if 子句只保留滿足條件的值。
哪種語法可以建構字典推導式?
答案: {k: v for k, v in items}
為什麼: 字典推導式使用花括號,並寫成 鍵: 值。
[x for x in "abc"] 會得到什麼?
答案: ['a', 'b', 'c']
為什麼: 走訪字串會得到一個個單字元字串。
補全運算子,讓每個數字求平方。
squares = [n ____ n for n in range(4)]
print(squares)答案: *
為什麼: n * n 會把每個值乘以自身。
補全子句,只保留偶數值。
nums = [1, 2, 3, 4]
evens = [n for n in nums ____ n % 2 == 0]
print(evens)答案: if
為什麼: if 子句會篩選 for 子句產生的值。
補全函式,得到每個單字的長度。
words = ["a", "bb"]
lengths = {word: ____(word) for word in words}
print(lengths)答案: len
為什麼: len(word) 回傳單字的字元數。
補全巢狀迴圈關鍵字。
pairs = [(x, y) ____ x in [1, 2] for y in [3, 4]]
print(pairs)答案: for
為什麼: 第二個 for 子句產生內層值。
這段程式列印出什麼?
print([n + 1 for n in [1, 2, 3]])答案: [2, 3, 4]
為什麼: 每個值都增加 1。
程式碼的輸出結果是什麼?
print([n for n in range(6) if n % 2 == 0])答案: [0, 2, 4]
為什麼: 推導式保留 0、2 和 4。
螢幕上會顯示什麼?
print({n: n * n for n in range(3)})答案: {0: 0, 1: 1, 2: 4}
為什麼: 字典把 0、1、2 映射到它們的平方。
這段程式碼會輸出什麼?
print([len(w) for w in ["a", "bb", "ccc"]])答案: [1, 2, 3]
為什麼: 長度分別是 1、2、3。
先試一遍題目
打開 Python 列表推導式 練習頁,用即時回饋回答同樣的 12 道題。