元組 ( 數組 ) tuple
Python 有兩種序列結構,分別是元組 ( tuple ) 和串列 ( list ),兩種序列都可以將任何一種物件作為它們的元素,這篇教學將會介紹 tuple 的用法與限制 ( tuple 的發音可以唸成 too-pull 也可唸成 tub-pull,中文稱為元組或數組 )。
快速導覽:tuple 與串列 list 的差異、使用 tuple 的好處、建立 tuple、讀取 tuple 的內容、使用 + 號結合 tuple、使用*號重複項目、強制修改 tuple
本篇使用的 Python 版本為 3.7.12,所有範例可使用 Google Colab 實作,不用安裝任何軟體 ( 參考:使用 Google Colab )
tuple 與串列 list 的差異
tuple 和串列非常的類似,都是一個儲存資料的「容器」,可以將物件存入,變成有順序的序列結構,不過 tuple 和串列有以下幾點不同:
- tuple「只要建立了,就不能修改內容」。
- tuple 使用「小括號」,串列 list 使用「方括號」。
- 如果 tuple 裡只有一個元素,後方必須加上「逗號」( 多個元素就不用 )。
使用 tuple 的好處
雖然 tuple 在使用上有不少限制,但 tuple 也是有一些好處:
- 讀取速度比串列快。
- 佔用的空間比較少。
- 資料更安全 ( 因為無法修改 )。
建立 tuple
建立 tuple 有兩種方法:「使用小括號和逗號」和「使用 tuple()」。
使用小括號和逗號
透過小括號包覆內容,用逗號將內容隔開,就可以建立一個基本的 tuple,下方的例子,可以看到 a 和 b 的型別都是 tuple ( 注意,因為 b 只有一個元素,所以元素後方要加上逗號 )。
a = ('apple','banana','orange','grap') b = ('apple',) type(a) # tuple type(b) # tuple
使用 tuple()
使用「
tuple(串列)
」可以將串列轉換成 tuple。a = ['apple','banana','orange','grap'] b = tuple(a) type(b) # tuple
讀取 tuple 的內容
讀取 tuple 的內容有兩種方法:「使用變數」、「索引值 offset」。
使用變數
因為 tuple 可以一次賦予多個變數內容,透過這個方法可以一次將項目丟給不同的變數,接著只要讀取變數,就能讀取對應內容 ( 注意,使用這個方法時,變數的數量要等於 tuple 的內容數量 )。
t = ('apple','banana','orange','grap') a, b, c, d = t print(a) # apple print(b) # banana print(c) # orange print(d) # grap
索引值 offset
在 tuple 裡每個項目都有自己的索引值 offset,指定 offset 就能讀取該資料的內容。
t = ('apple','banana','orange','grap') print(t[0]) # apple print(t[1]) # banana print(t[2]) # orange print(t[3]) # grap
使用 + 號結合 tuple
類似字串的結合方式,使用 + 號,可以將不同的 tuple 合併。
t1 = ('apple','banana','orange')
t2 = ('grap','pineapple')
t = t1 + t2
print(t) # ('apple', 'banana', 'orange', 'grap', 'pineapple')
使用*號重複項目
使用*號,可以將重複一個 tuple 內的所有項目,並產生一個新的 tuple。
a = ('apple','banana','orange')
b = a*3
print(b) # ('apple', 'banana', 'orange', 'apple', 'banana', 'orange', 'apple', 'banana', 'orange')
強制修改 tuple
使用串列 list 存取 tuple 資料,修改資料後,再轉換為新的 tuple ( 注意,雖然變數名稱相同,但兩個 tuple 是完全不同的 )。
a = ('apple','banana','orange')
b = list(a)
b.append('grap')
a = tuple(b)
print(a) # ('apple', 'banana', 'orange', 'grap')
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~