2016-12-11 14 views

答えて

6

影響はありません。 lambda式はfunctionオブジェクトを定義し、リスト内包のifガードはブール値を予期します。あなたが実際になど、その後

[x for x in (1,2,3) if (lambda y :y-2)(x)] 

あなたと同じように結果の関数、呼び出された場合、リスト内包表記は

[x for x in (1,2,3) if True] 

と全く同じであるので、functionオブジェクトの「truthinessは」、常にTrueです値が2に等しくないかどうかを効果的にチェックする実際のフィルタがあります(y - 2は0ではないため、の値が2以外の場合はTrue)。

関連する問題