開啟「互動式 Python 執行列
Python中的多維列表
 課程目錄
 編輯章節
 EDU-MD
 Google 教室
 加至書籤

Python中的多維列表

我們已經對 Python 中的列表有了一些初步的瞭解,接下來,我們將更加深入地探討 Python 中的列表使用。經常,我們必須處理很複雜的資料結構,這些資料一個個地被儲存在列表中,因此,要怎麼有效地將列表的結構複雜化,成了一個很重要的課題。

列表中的列表

還記得嗎?我們之前曾經提到,列表中可以儲存幾乎所有的資料型態。既然是「幾乎所有的資料型態」,那麼想必列表中是可以儲存另一個列表的吧?

沒有錯的,我們可以在一個列表中,加上其它的列表——也可以在這些列表中的列表中,加上更多其它的列表… 一直這樣循環下去。事不宜遲,讓我們馬上建立一個我們很熟悉的列表:

>>> a = [1, 3, 5]  
>>> print(a)  
[1, 3, 5]     

再熟悉不過了,對吧!接著,讓我們試著將這個列表 a 中的 1 號位置變成另外一個列表:

>>> a[1] = [99, 98, 97]  
>>> print(a)  
[1, [99, 98, 97], 5]     

看起來會不會吧有些複雜呢?在第一行程式中,我們將 a[1] 變成了列表 [99, 98, 97]。接下來,我們印出了列表 a,並且得到程式中的三行的輸出。

從這個輸出中,我們可以看到,現在列表 a 的第 0 項是 1,而第 2 項是 5,夾在中間的第 1 項,則代表著 [99, 98, 97] 這個列表。這種在列表中還有其它列表的情況,我們成為多維列表,或者在這個例子中,是二維列表

建立多維列表

要建立一個多維列表,可以說是相當的簡單,因為過程跟任何其它類型變數的宣告都一模一樣。舉例來說,現在我們想要建立一個變數叫做 c,並且讓其值為一個二維陣列,那麼我們可以:

>>> c = [1, [0, 1, 2], 2, 3]  
>>> for item in c:  
...     print(item)  
...  
1  
[0, 1, 2]  
2  
3    

是的,宣告一個多維的列表,與宣告一個一維的列表其實是一模一樣的,只是把其中的某一個項目改成另外一個列表而已!不只列表中的列表可以這樣寫,列表中的列表中的列表也可以這樣寫哦!以此類推。

>>> a = [1, [2, [3, 4]], 5]  
>>> for elem in a:  
...     print(elem)  
...  
1  
[2, [3, 4]]  
5   

多維列表的選取

還記得嗎?列表中的每一個項目,都有自己的位置編號,這些編號由 0 開始,依序往列表的右邊增加。在選取列表中的項目時,我們可以使用中括號 [] 來代表該項目在列表中的位置,例如:

>>> m = [1, 3, 5]  
>>> print(m[0])  
1  
>>> print(m[1])  
3  
>>> print(m[2])  
5   

同樣的邏輯,也可以運用在多維列表上:

>>> al = ["a", "b", ["c", "d"]]  
>>> print(al[0])  
a  
>>> print(al[1])   
b  
>>> print(al[2])  
['c', 'd']     

但是如果我們想要選擇的是列表中的字母 c 呢?要怎麼寫才能讓電腦選取到列表中的另外一個列表?其實很簡單,我們可以使用兩個中括號 [][]

>>> print(al[2])  
['c', 'd']  
>>> print(al[2][0])  
c  
>>> print(al[2][1])  
d     

這樣的邏輯相當地簡單易懂。接著,讓我們來看看下面這個例子:

>>> mul = ['A', ['B', ['C', 'D'], 'E']]    

讓我們分別印出 A、B、C、D、E,練習一下怎麼選取複雜列表中的項目吧!

>>> print(mul[0])  
A  
>>> print(mul[1][0])  
B  
>>> print(mul[1][1][0])  
C  
>>> print(mul[1][1][1])  
D  
>>> print(mul[1][2])  
E    
 均一平台
 台達磨課師
 酷課雲
 可汗學院
無相關資源
 收起側邊目錄
 
前往目錄頁面