Python : all()はすべての要素が真、any()は真となる要素が一つでもあれば真

TwitterFacebookHatena
  • 公開:2021-8-25
  • 更新:2024-11-12
  • 文章量:1273
  • Python

TL;DR

all()、any()は、イテラブル(繰り返し可能なオブジェクト)を一つだけ引数にとり、真理値(True / False)を返す組み込み関数である。

all() と any() のポイント

  • all()は、引数のイテラブルが「すべての要素が True(真)である」というふうに判定されると True を返す
  • any() は「真となる要素が一つでもあれば真を返す」働きをする。それ以外は False を返す

Python における真理値とは、ある命題が「真」か「偽」かを示す値である。Python で扱う真理値は、真と偽のみ。この値を扱うデータ型として bool 型が用意されている。True や False と書くだけで利用できる。

all()

all()は、引数のイテラブルが「すべての要素が True(真)である」というふうに判定されると True を返す。そして、一つでも False(偽) が存在する場合は、False を返す。

all([True, True, True])

# True
all([True, True, False])

# False

空文字を入れると、False になる。なぜなら、空文字は False だからである。

all(['a', 'b', ''])

# False

空文字は False なので、全て空文字にしても False を返す。

all(['', '', ''])

# False

空のタプルがあっても False を返す。

all(['a', 2, {}])

# False

None を混入させると False になる。

all(['a', 2, None])

# False

全ての要素に、None を入れると False を返す。

all([None, None, None])

# False

しかし、空のイテラブルは、全てが真となるために True を返すようだ。

all([])

# True

空文字のときに、入力漏れを出力する関数。

x = ['yamada', {'year' : 21}, '']

def func(i):
    if all(i) == False:
        return '入力漏れがあります'

func(x)

# 入力漏れがあります

any()

any() は「真となる要素が一つでもあれば真を返す」働きをする。それ以外は False を返す。

any([True, True, False])

# True
any([False, False, False])

# False

文字が一つでもあれば真となる。

any(['a', 'b', ''])

# True

全ての要素が空の場合は False を返す。

any(['', '', ''])

# False

None の場合は False を返す。

any([None, None, None])

# False

Python : all()はすべての要素が真、any()は真となる要素が一つでもあれば真