私はLambda関数に比較的慣れていないので、特にこれは私をかなり混乱させました。平均長が3.4の単語のセットがあり、単語のリスト= ['hello'、 'my'、 'name'、 'is'、 'lisa']
単語の長さを平均の長さと比較し、平均の長さよりも長い単語だけを印刷したい
average = 3.4
words = ['hello', 'my', 'name', 'is', 'lisa']
print(filter(lambda x: len(words) > avg, words))
だからこの場合私は欲しい
['hello', 'name', 'lisa']
しかし、代わりに私は得ています:
<filter object at 0x102d2b6d8>
list(filter(lambda x: len(x) > avg, words)))
filter
はPython3のイテレータです。フィルタオブジェクトを反復処理するか、リストを呼び出す必要があります。
In [17]: print(filter(lambda x: len(x) > avg, words))
<filter object at 0x7f3177246710>
In [18]: print(list(filter(lambda x: len(x) > avg, words)))
['hello', 'name', 'lisa']
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加