Skip to Main Content
高效能PYTHON程式設計
book

高效能PYTHON程式設計

by Micha Gorelick, Ian Ozsvald
August 2015
Intermediate to advanced content levelIntermediate to advanced
384 pages
7h 42m
Chinese
GoTop Information, Inc.
Content preview from 高效能PYTHON程式設計
串列與元組
|
69
注意,串列與元組都能夠接受混合型別。如我們即將看見,這會導致相當多的額外成
本,並且減少一些最佳化的機會。假如我們強迫所有的資料都具有相同的型別,這些額
外成本就能夠被移除。在第 6 章中,我們將討論透過使用
numpy
減少記憶體的使用及計
算的成本。另外,其他套件(如
blist
array
)也能夠針對其他非數值的狀況減少這些
成本。這略微觸及我們將於後續章節提到的高效能編程要點︰一般化的程式碼會比特別
設計來解決特定問題的程式碼緩慢很多。
另外,元組的不變性—不同於串列,串列是可變的,並且允許改變尺寸—使得它成為一
種非常輕量化的資料結構。這表示,在儲存它們時,沒有太多的記憶體成本,而且操作
它們是相當簡單的。如我們即將學到,使用串列時,串列的可變性會在儲存與使用它們
時,引發額外的記憶體與計算成本。
針對下列範例資料集,你會使用元組或串列?為什麼?
1. 20 個質數
2. 各種程式語言的名稱
3. 某人的年齡、體重和身高
4. 某人的生日和出生地
5. 特定撞球比賽的結果
6. 持續進行中的一系列撞球比賽的結果
解答︰
1.
tuple
,因為該資料是靜態的並且不會改變
2.
list
,因為這個資料集會持續增長
3.
list
,因為這些值需要被更新
4.
tuple
,因為該資訊是靜態的並且不會改變
5.
tuple
,因為該資料是靜態的
6.
list
,因為更多比賽將被舉行(事實上,我們可以使用由元組構成的
串列,因為每一場比賽的個別結果不會改變,但隨著更多比賽被舉
行,我們必須增加更多的比賽結果) ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

流畅的Python

流畅的Python

Luciano Ramalho
手把手教会你linux

手把手教会你linux

桑德.范.乌格特

Publisher Resources

ISBN: 9789863477105