iT邦幫忙

2023 iThome 鐵人賽

DAY 10
0
Software Development

跟著 OXXO 一起學 Python系列 第 18

( Day 10.1 ) Python 元組 ( 數組 ) tuple

  • 分享至 

  • xImage
  •  

Python 有兩種序列結構,分別是元組 ( tuple ) 和串列 ( list ),兩種序列都可以將任何一種物件作為它們的元素,這篇教學將會介紹 tuple 的用法與限制 ( tuple 的發音可以唸成 too-pull 也可唸成 tub-pull,中文稱為元組或數組 )。

原文參考:元組 ( 數組 ) 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')

更多教學

大家好,我是 OXXO,是個即將邁入中年的斜槓青年,我有個超過一千篇教學的 STEAM 教育學習網,有興趣可以參考下方連結呦~ ^_^


上一篇
( Day 9.2 ) Python 串列 ( 常用方法 )
下一篇
( Day 10.2 ) Python 字典 dictionary
系列文
跟著 OXXO 一起學 Python101
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言