Python for Beginners (10)|元組 (Tuple) 資料型態介紹與使用

Python 元組(Tuple)資料型態入門教學

by KC
3 comments
Python for Beginners
Python for Beginners

本單元測驗:

元組 (Tuple) 用於將多個元素儲存在單一變數中,同時元組 (Tuple) 也是 Python 中用來儲存資料的 4 種內建資料型態之一,其他 3 種則分別是串列 (List)集合 (Set)字典 (Dictionary),它們都各自具有不同的特性及用途。了解 Python 元組 (Tuple) 的基本概念及使用方式,對於活用 Python 程式設計是非常重要的。

Python常見資料型態 – 元組(Tuple)

1. 元組 (Tuple)

元組 (Tuple) 是一個值的序列 (sequence),它很像一個串列,可以容納一系列項目。儲存在元組中的值可以是任何類型,並且它們利用整數進行索引。與串列重要的區別是元組具有不可變動性(Immutable)。幾個重要的特性如下圖:

元組(Tuple)特性
元組(Tuple)特性

現在就讓我開始認識及操作元組 (Tuple) 吧!

2. 建立元組 (Tuple)

有幾種方法可以建立新元組,最簡單的方法就是將元素放在小括號(“(”和 “)”)當中。

範例 1:建立空元組 (empty tuple)

範例 2:建立整數型態項目之元組 (tuple)

範例 3:建立混合資料型態項目之元組 (tuple)

範例 4:建立巢狀元組 (tuple)

3. 元組 (Tuple) 存取

範例 5:索引 (indexing)

利用索引方式存取元組 (Tuple) 中任意元素。

利用索引方式存取元組(Tuple)中任意元素
利用索引方式存取元組(Tuple)中任意元素

範例如下:

其運作方式如下:

利用索引存取元組(Tuple)運作方式
利用索引存取元組(Tuple)運作方式

範例 6:切割 (slicing)

可利用索引對元組 (Tuple )進行切割,其用法格式如下:

元組切割 (slicing) 的格式
元組切割 (slicing) 的格式

範例如下:

其運作方式如下:

利用索引對元組 (Tuple) 進行切割
利用索引對元組 (Tuple) 進行切割

範例 7:連接 (concatenating)

可以將元組(Tuple)用 + 連接起來。

範例 8:乘以 (multiplying)

可以用 * 對元組(Tuple)做倍數處理。

範例 9:元組(Tuple)中的資料具不可變動性

與串列(List)不同,元組(Tuple)是不可變動的。所以欲異動任何一筆資料時會出現 TypeError。

範例 10:無法更改元組(Tuple)中的元素

元組(tuple)資料具不可變動性,所以不能刪除元組(tuple)內的項目。

但是可以刪除整個元組(tuple)。出現錯誤是因為我們要求列印 fruits 元組,但因為已經刪除所以會出現沒有被定義的狀態。

有上面範例可以知道,我們無法更改元組(tuple)中的元素。

範例 11:將串列 (List) 轉換為元組 (Tuple)

利用 tuple() 函式,將串列 (List) 型態轉換為元組 (Tuple) 型態。

4. 元組方法 (Tuple Methods)

範例 12:count():傳回所需計數元素(項次)數量

範例 13:count():回傳第一次出現元素(項次)的索引

5. 其他元組 (Tuple) 運算

範例 14:元組 (Tuple) 成員檢查

檢查元素是否在元組內 (使用 in / not in)

範例 15:元組 (Tuple) 迭代

使用 for 迴圈,我們可以迭代元組 (Tuple) 中的每個元素。有關 for 迴圈的詳細用法,我們會在後面文章中介紹。

經由本篇文章介紹後,初學者對 Python 資料型態中另一個重要的元組 (Tuple) 型態應該有了基本認識,後續會持續分享 Python 相關學習文章給有興趣的初學者。

6. Python 練習

學習環境:Google Colab (學習請按我)

練習範例:有 (本文提供)

Quiz:有 (測驗請按我)

如果你喜歡這篇文章歡迎訂閱、分享(請載名出處)追蹤,並持續關注最新文章。同時 FB 及 IG 也會不定期提供國內外教育與科技新知。

Related Posts

3 comments

cardsfan 2023-02-16 - 17:14

站長KC哈囉!
很感謝你很用心的謝了這一系列python for begineers文章~今日白天按順序拜讀、在python IDLE shell上操作測試,都非常詳細且好懂,未來也會繼續追蹤此一系列文章慢慢學習的!

有兩個疑問想在此向您詢問:

1. 讀畢文章(9)、(10)的list和tuple,我發現tuple與list 的不同之處似乎只在於要用[]還是()符號,以及tuple的元素是不可變動的此2個差別,這樣子好像tuple與list相比功能近乎相同,且好像還更不方便一些XD,不知道這樣的認知是否正確?有什麼狀況是使用tuple才作得到、或可以比list更好的呢?

2. 有關本文(10)第5大點其他tuple運算部分,副標題的範例14、範例15好像不小心打成串列(list)成員檢查與迭代,是否應該改成元組(tuple)呢?

Reply
KC 2023-02-17 - 10:13

謝謝您的回饋,有關詢問的部分簡單說明如下:
1.list跟tuple差別除了符號使用及資料是否可變動性不同之外,detail的部分還有迭代速度及記憶體使用消耗等差異,也因為有這些差異在實際應用上就會根據需求做選擇。由於Simple Learn網站主要是希望提供初學者一個簡單易學的學習園地😊,所以較為困難或進階部分在文章中就暫時不特別說明,但我們會另外分享一些我們覺得還不錯的學習資源給大家參考。同時有關這一部份的比較,我們會另外找時間整理提供大家參考😄。
2.所提範例14、範例15誤植部分已調整,謝謝您相關的回饋意見,也期待你持續追蹤 Simple Learn 唷。

Reply
cardsfan 2023-02-17 - 10:36

了解~相信繼續慢慢學習,自己也能發現應用上該如何根據需求做選擇的!
謝謝您的回覆,也期待您往後的分享

Reply

Leave a Comment

error: Content is protected !!