ホーム > 記事 > Python > python入門 > 【Python】allとany

記事

【Python】allとany

ここではイテラブルの真理値判定につかわれるallとanyについて述べます。

目次

  1. all
  2. any
  3. まとめ

all

allはすべてイテラブルの要素がすべてTrueのときにTrueを返します。どれか一つでもFalseのときにはFalseをかえします。イテラブルの長さが0の時はTrueをかえします。

例えば以下のようなリストの場合どうなるでしょうか。

l = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(all(l))

真理値判定するとTrueになります。

True

0を含むとどうなるでしょうか。

l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(all(l))

実行結果

False

リストの中に0を含むとFalseを返しました。数字の真理値判定は原点からの距離が0のときFalseとなりそれ以外はTrueをかえすためです。詳しくは以前の記事「真理値判定」を見てください。

イテラブルの長さが0の場合どうなるでしょうか。

l = []
print(all(l))

実行結果

True

この実行結果は直感と反するため注意してください。all()はイテラブルの長さが0のときにはTrueを返します。

イテラブルの中に長さ0のイテラブルが入っている場合どうなるでしょうか。

l = [[]]
print(all(l))

実行結果

False

今度はFalseが返っていました。長さ0のイテラブルの真理値判定はFalseのため、Falseが返ってきます。

allはイテラブルの長さが0だとTrueをかえしますが、イテラブルの中に長さ0のイテラブルがあった場合Falseをかえすため注意してください。これは長さが0のイテラブル真理値判定がFalseのためです。直感と反しますがallの仕様がそうなっている以上仕方がありません。

以下のように空の文字列あった場合はどうなるでしょうか。

l = ["東京","埼玉","","大阪"]
print(all(l))

実行結果

False

文字列もイテラブルであり空文字列は長さが0なので真理値判定がFalseになり結果としてallはFalseをかえします。

↑目次

any

anyはイテラブルの要素のどれか一つがTrueであればTrueを返します、すべてFalseの場合にFalseを返します。

いずれかがTrueの場合。

l = [0,1,0]
print(any(l))

実行結果

True

すべてFalseの場合

l = [0,0,0]
print(any(l))

実行結果

False

長さ0のイテラブルをanyで判定した場合

l = []
print(any(l))

実行結果

False

↑目次

まとめ

all()メソッドとany()メソッドについて述べました。

allメソッドとanyメソッドは長さ0のイテラブルが与えられたときの振る舞いに違いがあるため注意してください。allとanyは真理値判定をしっかりと理解しておかないと、直感と異なる動きに戸惑う事があります。真理値判定についてはしっかりと理解しましょう。

↑目次

この記事へのコメント

コメントはまだありません。

コメントを送る

必須
必須  
※ メールアドレスは公開されません
任意
必須
Loading...  画像の文字を入力してください