リスト(または辞書)内の関数の復帰をテストする方法はありますか?私はそれを書くことを避けたい:Pythonのリストの理解:テスト関数の戻り
lst = []
for x in range(10):
bar = foo(x)
if bar:
lst.append(bar)
代わりにリストの理解を使用してください。明らかに、私は書いたくありません:
[foo(x) for x in range(10) if foo(x)]
so?およそ
filter(None, map(foo, range(10)))
あなたはitertools.imap()
でmap()
を置き換え、中間リストを保持したくない場合はどう
[foo(x) for x in range(10) if ??? ]
あなたが最初の方法を使用したくないのはなぜ?それは適切な方法です。 –
@Rohit Jain - 'foo'に応じて、2回したくない高価な操作になる可能性があります。 – mgilson
@mgilson:最初の例では、彼は一度だけそれをします。 –