Python
•
•
By Kevin
Python 效能優化:List Comprehension vs. Map/Filter
寫出 Pythonic 且高效的程式碼
在處理大量數據時,迴圈的寫法直接影響效能。傳統的 for 迴圈雖然直觀,但在 Python 解譯器中速度較慢。
List Comprehension (列表推導式):squares = [x**2 for x in range(1000)]
這是最 Pythonic 的寫法,底層經過優化,執行速度通常比 for 迴圈快 30-50%。
Map/Filter 函數:squares = list(map(lambda x: x**2, range(1000)))
在 Python 3 中,map 回傳的是 Iterator (惰性求值),這在處理超大數據集時非常節省記憶體,因為它不會一次產生所有結果。但若需轉回 List,其效能與 List Comprehension 相當。
結論:追求可讀性與一般效能,首選 List Comprehension;若處理海量數據且只需迭代一次,優先使用 map 或 Generator Expression (x**2 for x in range(1000))。