2016-11-24 6 views
0

私は、Pythonリストの単一の要素が基準に合っているかどうかをチェックするために1行を作ろうとしていますが、現在のコードではループそれが「真」-markに当たるので、唯一の最後の要素は、チェックのためにカウント:条件充足のためにPythonのリスト全体をチェックする方法

if [[CheckStatus(value, outsidevalue)] for value in valuelist] is True: 
    magic 

(のcheckStatusはoutsidevalueに比べてすべての単一の値のTrueまたはFalseのどちらかを返し、受け入れることになっているかのように真であります単一値はTrueを返します)

+0

'all'と' any'組み込み関数を参照してください。 –

答えて

1

これは常に偽になります。

if [[CheckStatus(value, outsidevalue)] for value in valuelist] is True: 

listbooleanを比較しているためです。 (、内部の角括弧が削除されていることに注意してTrueが発見されるまで、すべての要素にあなたの関数を呼び出して、発電機の理解に

if any(CheckStatus(value, outsidevalue) for value in valuelist): 

any繰り返し処理し、私たちにはありません。

何が欲しいのはanyですリストの理解度を作成する必要があります。より速いジェネレータの理解度です)

+0

これはトリック、ありがとう – Grak

関連する問題