all()・any()

all()・any()

all()

 all()関数は受け取った イテラブル・オブジェクト (リストやタプルなど) のすべての要素が True であるか、またはイテラブル・オブジェクトが空であるときに True を返します。そうでない場合は False を返します。たとえば、次のように True という要素で構成されたリストを引数に渡してみると当然 True が返ります。

# PYTHON_ALL-1

# True のリスト
my_list = [True, True, True]

# all()関数ですべての要素がTrueであるか調べる
x = all(my_list)

print(x)
True

 all() に空のリストを渡しても True が返ります。

# PYTHON_ALL-2

# 空のリスト
my_list = []

# all()関数ですべての要素がTrueであるか調べる
x = all(my_list)

print(x)
True

 Python では少数の例外を除くと、ほとんどのオブジェクトは True 属性をもっています。
 したがって、次のようなコードを実行すると True が返ります。

# PYTHON_ALL-3

# 数値、文字列、クラスを要素にもつリスト
my_list = [100, "Python", frozenset]

# all()関数ですべての要素がTrueであるか調べる
x = all(my_list)

print(x)
True

 None や 0, () などは例外的に False の属性をもちます。all() の引数にこれらのオブジェクトが1つでも混ざると False を返してきます。

# PYTHON_ALL-4

# 文字列、数値、関数を要素にもつリスト
my_list = ["Anaconda", 0, compile]

# all()関数ですべての要素がTrueであるか調べる
x = all(my_list)

print(x)
False

 

any()

 any() は受け取ったイテラブル・オブジェクトのいずれかの要素が True であるときに True を返します。

# PYTHON_ANY-1

# Bool値のタプル
my_tuple = (False, True, False)

# any()関数でTrueの要素があるかを調べる
x = any(my_tuple)

print(x)
True

 すべての要素が False であれば False を返します。

# PYTHON_ANY-2

# 数値、None、()のリスト
my_list = [0, None, ()]

# any()関数でTrueの要素があるかを調べる
x = any(my_list)

print(x)
False

 イテラブルが空のときにも False を返します。

# PYTHON_ANY-3

# 空のディクショナリ
my_list = {}

# any()関数でTrueの要素があるかを調べる
x = any(my_list)

print(x)
False