可能重複:
Is it Pythonic to use list comprehensions for just side effects?
proper use of list comprehensions - python列表理解等同不會產生一次性列表
Python有有用的和優雅的list comprehension語法。然而,AFAIK它總是產生一個列表。有時我覺得使用列表理解只是它的緊湊性的衝動和優雅,而無需在結果列表:
[some_func(x) for x in some_list if x>5]
some_func()
可以返回一些東西,我不需要,它可能不會在所有返回任何東西。我嘗試了生成器語法:
(some_func(x) for x in some_list if x>5)
但是正如您可能會猜到的那樣,它不會重複執行some_list
。它這樣做只能在一定的語境:
other_func(some_func(x) for x in some_list if x>5)
所以...有沒有語法我失蹤得到這個工作,或者我應該一直回落到3條線?
for x in some_list:
if x>5:
some_func(x)
在這裏有一個合法和獨特的問題,「如何在不創建丟棄列表的情況下運行迭代器來完成」。 – 2012-01-02 07:14:28
@RaymondHettinger是對的,我正在尋找一個構造的替代品,而不知道它的名字或者它是否存在。這與其他兩個鏈接的問題完全不同 – Jonathan 2012-01-02 07:40:56
@ IgnacioVazquez-Abrams,@ delnan - 我也改變了問題的名稱來反映這個 – Jonathan 2012-01-02 07:47:14