開始使用免費開始

巢狀列表生成式

太好了!到目前為止,你已經相當熟悉列表生成式的基本語法了。接下來我們把寫程式的功力再往前推一步。這個練習要你在一個列表生成式「裡面」再寫一個列表生成式,也就是巢狀列表生成式。聽起來有點複雜,但你一定辦得到!

我們先暫時離開字串。列表的一個常見用途,是用來表示多維物件,例如矩陣。在 Python 中,矩陣可以用列表的列表來表示。例如,每一列包含 04 的 5 x 5 矩陣可以寫成:

matrix = [[0, 1, 2, 3, 4],
          [0, 1, 2, 3, 4],
          [0, 1, 2, 3, 4],
          [0, 1, 2, 3, 4],
          [0, 1, 2, 3, 4]]

你的任務是用巢狀列表生成式重建這個矩陣。回想一下,你可以用單一列表生成式建立矩陣的一列。若要建立列表的列表,只要把該列表生成式當作整體列表生成式的輸出運算式即可:

[[output expression] for iterator variable in iterable]

請注意,這裡的輸出運算式本身就是一個列表生成式。

本練習屬於課程

Python 工具箱

檢視課程

練習說明

  • 在內層列表生成式(也就是巢狀列表生成式的輸出運算式)中,使用 range() 產生從 04 的數值列表。將迭代變數命名為 col
  • 在巢狀列表生成式的可疊代物件部分,使用 range() 來計數 5 列,也就是建立從 04 的數值列表。將迭代變數命名為 row;注意,你不需要用到這個變數來建立列表的列表中的值。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Create a 5 x 5 matrix using a list of lists: matrix
matrix = [[____] ____]

# Print the matrix
for row in matrix:
    print(row)
編輯並執行程式碼