2021年12月8日 星期三

Python:比較 List Comprehensions 與 Generator Expressions

先來比較兩者的語法:

# List comprehension
[x*2 for x in range(256)]

# Generator expression
(x*2 for x in range(256))

兩者的差別為中括號以及小括號的使用,但在實務上兩者適用於不同的情形。

  • List comprehension 會直接創造一整個 list,而 generator expression 是一個一個 item 來創造,因此用到 generator expression 比較節省記憶體。
  • 大部分情況來說 generator expression 也跑得比較快。
  • List comprehension 的好處是當需要多次 iterate 時,或者需要 list 的 operation 時,那麼該考慮使用 list comprehension。

參考資料

[1] Generator expressions vs. list comprehensions

[2] PEP 289 -- Generator Expressions

沒有留言:

張貼留言