2-4:串列、元組
串列,又名列表,在 App Inventor 裡叫清單、在 C、Java 語言,則是稱為陣列。
將串列想像成是一個櫃子,每一層抽屜都能存放資料,而抽屜外會有一個編號,我們稱為索引碼,Python 語言的第一個索引碼從 0 開始,如果我們想取第一筆資料,那麼我們就找索引碼為 0 的抽屜。
P.S. 在 App Inventor,清單的索引碼從 1 開始。
接著,我們來看看在 Python 語言裡,該怎麼實作串列。
串列的初始化
實作語法如下:
串列名稱 = [資料0, 資料1, 資料2, ………]
name = [“James”, “Kirk”, “Bruce”, “Tony”]
name 是一個串列變數,裡面存放姓名。
如果我要取得 Kirk 這筆資料,就要撰寫下方語法來取出資料:
print(name[1])
name[1] 這裡的 1 就是索引碼。
串列搭配迴圈
通常要使用迴圈來印出串列的資料,我們會先取得串列的長度,這個長度就是迴圈的執行次數,再來將迴圈變數當作索引碼,來取得串列的值,如下:
name = ["James", "Kirk", "Bruce", "Tony"]
n = len(name)
for i in range(n):
print(name[i])
但是在 Python 裡,有更方便的做法,如下:
name = ["James", "Kirk", "Bruce", "Tony"]
for i in name:
print(i)
使用這個做法,迴圈每次執行,i 的值就會是串列變數 name 的值。
串列與元組
元組使用起來和串列沒什麼太大的差別,只是它無法更改資料,一開始初始化後,值就是固定的。初始化語法如下:
name = (“James“, “Kirk“, “Bruce“, “Tony“)
與串列的差別為,串列使用 [] 符號,元組使用 () 符號。
問題:串列和元組可以互相轉換嗎?
答案:可以喔!可以使用 list 命令和 tuple 命令做轉換
tupleData = (1, 2, 3)
listData = list(tupleData)
print(listData)
listData2 = [4, 5, 6]
tupleData2 = tuple(listData2)
print(tupleData2)
增加、修改串列資料
剛剛有講到,元組是無法更改和新增資料的!那麼串列可以嗎?
當然可以!!!
先來講修改資料,實作方法非常簡單,如下:
name = [“James“, “Kirk“, “Bruce“, “Tony“]
我們將第四筆資料 Tony,改成 Tom。
name = ["James", "Kirk", "Bruce", "Tony"]
print(name[3])
name[3] = "Tom"
print(name[3])
這樣就完成變更了!很簡單吧
接下來是新增資料,我們可以使用 append 命令,實作如下:
name = [“James“, “Kirk“, “Bruce“, “Tony“]
我們要在 Tony 後面再新增一個姓名 Tom
name = ["James", "Kirk", "Bruce", "Tony"]
print(name)
name.append("Tom")
print(name)
這樣就完成新增囉!
其實串列還有很多玩法,但一次全講出來初學者絕對會搞混!
之後有興趣我再來一一介紹!!
P.S. Python 有一個很常見的套件叫 numpy,是比串列還要強大的陣列。未來有機會也會做一次詳細的教學。敬請期待