Pythonにはall
とany
という組み込み関数があります。これらの関数は、if文における複数条件をスマートにしてくれます。
allとanyの基本
all
はPythonの組み込み関数で、リストなどの中身がすべてTrueであればTrueを返す関数です。any
は中身に一つでもTrueがあればTrueを返します。
例えば、以下のように書くことができます。
if all([ a > 0, a % 2 == 0, a != 10, a != 100, ]):
pass
これは、すべての条件式が揃っているので美しいと言えます。
注意点
all
を使った場合、一旦リストを生成するため、すべての条件が評価されます。単に右側の条件も評価するから遅い、というだけならあまり問題はないのですが、次のようなケースで問題が起こります。
if a is not None and a > 0: # aはNoneかもしれないが、短絡評価によってエラーが出ない
pass
これを
if all([ a is not None, a > 0, ]):
pass
こう書き換えてしまうと、コメントに書いたようにエラーが起きてしまいます。
以上、Pythonのall
とany
についての基本的な使い方と注意点を説明しました。これらの関数を理解し、適切に使用することで、より効率的なコーディングが可能になります。