5

thingというオブジェクトの反復可能なシーケンスがあるとしthingsます。それぞれに、"whatever" 基準を満たす場合に True を返すthingメソッドがあります。アイテムが何でis_whatever()あるかを効率的に調べたいです。things

これは私が今していることです:

any_item_is_whatever = True in (item.is_whatever() for item in items)

それは効率的な方法ですか? つまり、Python は最初の True の結果を見つけるとすぐに iterable からのアイテムの生成を停止しますか? スタイル的に、それはpythonicですか?

4

1 に答える 1

12

組み込み関数を使用する必要がありますany()

any_item_is_whatever = any(item.is_whatever() for item in items)
于 2012-08-09T17:51:38.393 に答える