膨大な数のアイテムを含むリストがあると仮定すると、
l = [ 1, 4, 6, 30, 2, ... ]
そのリストからアイテムが特定の条件を満たすアイテムの数を取得したい。私の最初の考えは:
count = len([i for i in l if my_condition(l)])
しかし、フィルタリングされたリストにも多数のアイテムがある場合、フィルタリングされた結果に対して新しいリストを作成するのはメモリの無駄だと思います。効率のために、IMHO、上記の呼び出しは以下よりも優れていることはありません。
count = 0
for i in l:
if my_condition(l):
count += 1
一時的なリストを生成せずに条件を満たすアイテムの数を取得する機能的な方法はありますか?