容器資料型別(Container Datatypes)
就是為了更有效率處理資料所設計的資料型別。
如果說變數是一個盒子,一次只能放入一個值,在實務面上,我們有很多資料要處理,例如5x5的LED燈,假設我們想個別紀錄每個LED燈的亮度,那麼我們可能需要25個變數(當然也可以設計成用更少變數來儲存狀態)。
在討論那些特殊方法以前,更直觀的方式是發明一個擁有很多格子的箱子,甚至裡面可以編號,讓資料可以一次存放處理,也可以透過編號,快速取用。
這個同時有多個格子的箱子,就是我們接下來要介紹的容器資料型別。
在Python中,最常見的資料結構有這四個:
List
(串列)Tuple
(元組)Set
(集合)Dictionary
(字典)list
是一個值可變、可重複、存放有順序性的資料結構。
[]
,使用序號存取.append
:加入.insert
:插入.remove
: 刪除.pop()
: 取出與刪除使用 .index()
使用 len(list)
sort()
reverse=True
參數設定排序順序很常用的技巧,例如用一個list
儲存全班姓名、分數資訊
Tuple是一個值不可變、可重複、存放有順序性的資料結構。
()
Set是一個值可變、不可重複、存放沒有順序性的資料結構。
{}
Dictionary是一個值可變、可重複、存放使用唯一識別Key的資料結構。
由一組或多組key-value組成
{key: value}
使用len()
以下是所有資料結構的使用方式與比較,資料結構的運用,視實務面選擇:
資料結構型態 | 初始化方式 | 是否有次序 | 儲存值是否可重複 | 儲存值是否可被修改 |
---|---|---|---|---|
List | list(), [] | YES | YES | YES |
Tuple | tuple, () | YES | YES | NO |
Set | set([]), {} | NO | NO | YES |
Dictionary | dict(),{key:value} | NO | Key不可重複, Value可以 | YES |
全班的成績如下表所示,請設計一個程式來計算全班數學科平均成績,並使用以下設計原則
Dictionary
跟list
儲存全班資料姓名 | 國文科 | 英文科 | 數學科 |
---|---|---|---|
Chaoyen | 80 | 87 | 67 |
Joanne | 76 | 80 | 95 |
Manchster | 85 | 70 | 90 |
參考程式碼:https://repl.it/@ChaoyenWu/basicloopex
Python程式設計入門