allとany
組み込み関数のall/anyは、and/orを繰り返し行うといった感じです。
# all(iter(x)) <---> x[0] and x[1] and x[2] and ... # any(iter(x)) <---> x[0] or x[1] or x[2] or ...
ただし演算子and/orのように左辺や右辺の値を返すのではなく、all/anyはTrue/Falseを返します。このためall/anyは条件式として使うことがほとんどです。
all/anyの引数は、可能であればリストではなくイテレータにして渡した方がいいです。イテレータであれば、and/orと同様に偽/真が出てきたところで処理を打ち切ることができるからです。
data = [1, 2, 'spam'] if any([isinstance(e, int) and e > 0 for e in data]): print "すべての要素に対して条件式を実行" if any(isinstance(e, int) and e > 0 for e in data): print "1つでも真があれば後の条件式は実行されない"