>>> n = [1,2,3,4]
>>> filter(lambda x:x>3,n)
<filter object at 0x0000000002FDBBA8>
>>> len(filter(lambda x:x>3,n))
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
len(filter(lambda x:x>3,n))
TypeError: object of type 'filter' has no len()
私は得たリストの長さを得ることができませんでした。だから私はこのように、それを変数に保存...Pythonの "フィルター"オブジェクトの長さを見つける方法
>>> l = filter(lambda x:x>3,n)
>>> len(l)
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
len(l)
TypeError: object of type 'filter' has no len()
代わりのループを使用してみました、これの長さを取得する方法はありますか?
ジェネレータがどれだけ多くのオブジェクトを生成するかを知る方法はありません。最適化を気にするならば、先験的な情報を使って処理を高速化することができます。つまり、あなたのリストがソートされていることがわかっているなら、 'index(3)'の下の項目を破棄することができます。 – roippi