先來比較兩者的語法:
# 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。
沒有留言:
張貼留言