2008-11-21 82 views

回答

19

Rich,

列表和字符是適合不同需求的野獸。確保您不要使用列表散列完美的線性搜索列表,因爲它速度較慢。另外,如果您只需要遍歷的元素列表,請不要使用字典,因爲它會佔用比列表更多的空間。

這聽起來很明顯,但在算法上選擇正確的數據結構具有更高的性能增益,因爲更高效的編譯代碼佈局等等,可以實現微優化。如果在O(n)的列表中搜索而不是在在O(1)中的字典,微觀優化不會爲您節省。

+3

1比較。請注意,PHP程序員本質上並沒有得到這種區別。 – 2008-11-21 14:52:55

6

元組將稍微快一點來構建少量元素。雖然實際上大部分的收益將在內存中使用,而不是CPU週期,因爲元組需要的空間少於列表。

就這麼說,性能差異應該可以忽略不計,一般來說,您不應該擔心這些類型的微優化,除非您對代碼進行概要分析並確定了一部分代碼是瓶頸。

2

最大的區別是元組是不可變的,而列表和字典是可變數據結構。這意味着元組也更快,所以如果你有一些不改變的項目集合,你應該比列表更喜歡它們。