AI資格ドリル
資格を選ぶ

用語比較

all()とany()の違い|すべて真か、1つでも真か、空のときの結果(Python3基礎)

組み込み関数の all() はイテラブルのすべての要素が真のとき、any() は1つでも真の要素があるときに True を返します。

空のイテラブルでは結果が逆になり、all() は True、any() は False を返します。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。

all()とany()の要点

all()

すべての要素が真のときだけ True。1つでも偽があれば False。空なら True。

any()

1つでも真の要素があれば True。すべて偽なら False。空なら False。

使い分け

「全部そろっているか」を調べるなら all()、「1つでも当てはまるか」を調べるなら any()。

違いを表で確認

比較軸all()any()
True になる条件all():すべての要素が真any():1つでも真の要素がある
空のイテラブルを渡したときall([]) は Trueany([]) は False
False を返す条件偽の要素が1つでもあるすべての要素が偽、または空
判定が止まるタイミング最初の偽の要素で止まる最初の真の要素で止まる
条件式との組み合わせall(n >= 5 for n in nums):全員が5以上かany(n >= 5 for n in nums):5以上が1人でもいるか

Python3エンジニア認定基礎試験の学習に使う書籍(Amazon)

PR

ほかの資格を含む参考書・問題集の一覧を見る

どこで迷っているかを切り分ける

01

全部の点数が合格点以上かを調べたい人

all() を使い、all(n >= 5 for n in nums) のように書きます。1つでも5未満があれば False になります。

02

1つでも条件に合うデータがあるかを調べたい人

any() を使い、any(n >= 10 for n in nums) のように書きます。10以上の要素が1つでもあれば True になります。

03

空のリストを渡したときの結果を問われた人

all([]) は True、any([]) は False です。公式ドキュメントの説明どおり、空のときの結果は2つの関数で逆になります。

具体例で使い分ける

例 1

同じリストを all() と any() に渡す場合

[0, 0, 1] を all() と any() に渡す場面です。

  • all([0, 0, 1]) は False です。0 は偽なので、すべてが真という条件を満たしません。
  • any([0, 0, 1]) は True です。最後の 1 が真なので、1つでも真という条件を満たします。

結論: 偽が混ざっていれば all() は False になり、真が混ざっていれば any() は True になります。

例 2

空のリストを渡す場合

all([]) と any([]) を実行する場面です。

  • all([]) は True になります。偽の要素が1つもないため、公式ドキュメントの定義どおり True です。
  • any([]) は False になります。真の要素が1つもないためです。

結論: 同じ空のリストでも、all() は True、any() は False になります。

例 3

条件式と組み合わせた場合

nums = [3, 8, 12] に対して、5以上かどうかを調べる場面です。

  • all(n >= 5 for n in nums) は False です。3 が5未満なので、全員が5以上という条件を満たしません。
  • any(n >= 10 for n in nums) は True です。12 が10以上なので、1つでも10以上という条件を満たします。

結論: all() は全員が条件を満たすか、any() は1人でも条件を満たすかを調べます。

問題文から答えを選ぶ手順

  1. 1

    調べたい問いを言葉にする

    「すべてが条件を満たすか」か、「1つでも条件を満たすか」かを決めます。

  2. 2

    前者なら all()

    すべてが条件を満たすかを調べるときは all() を使います。

  3. 3

    後者なら any()

    1つでも条件を満たすかを調べるときは any() を使います。

  4. 4

    空のときの結果を確かめる

    空のイテラブルが渡る可能性があるなら、all() は True、any() は False になる点を考慮します。

試験での見分け方

  • 1すべて真か調べるなら all()、1つでも真か調べるなら any() を使う。
  • 2空のイテラブルでは、all() は True、any() は False になる。
  • 3all() は最初の偽の要素、any() は最初の真の要素で判定を打ち切る。

誤答しやすい選択肢

空のリストで all() が False になると思い込む

修正: all([]) は True です。偽の要素が1つもないため、公式ドキュメントの定義どおり True になります。

any() を「すべてが真」の意味で使う

修正: any() は1つでも真なら True です。全員が条件を満たすかを調べたいときは all() を使います。

文字列 '0' や空でないリストを偽と考える

修正: any(['']) は False ですが、any(['0']) は True です。真偽は中身の見た目ではなく、空かどうかなどの真偽値で決まります。all([[]]) は False、any([[0]]) は True です。

確認問題

Q1all([1, 2, 3]) と all([1, 0, 3]) の結果はそれぞれ何ですか?

答え: True と False

すべての要素が真なら True、0 のような偽の要素が1つでもあれば False です。

Q2any([0, '', None]) の結果は何ですか?

答え: False

0・空文字列・None はどれも偽なので、真の要素が1つもありません。

Q3all([]) と any([]) の結果はそれぞれ何ですか?

答え: True と False

空のイテラブルでは、all() は True を返し、any() は False を返します。

Q4nums = [3, 8, 12] のとき、all(n >= 5 for n in nums) の結果は何ですか?

答え: False

3 が5未満なので、すべてが5以上という条件を満たしません。

到達チェック

  • all() と any() が True を返す条件を言える
  • 空のイテラブルを渡したときの結果が逆になることを説明できる
  • all(条件 for 要素 in リスト) の形で書ける
  • 偽として扱われる値(0・空文字列・None・空のリスト)を挙げられる

同じ資格で次に知りたいこと

よくある質問

Qall()とany()の違いは何ですか?

A

all() はすべての要素が真のときに True、any() は1つでも真の要素があるときに True を返します。

Qall([])の結果は何ですか?

A

True です。公式ドキュメントは、イテラブルが空のときも True を返すと説明しています。

Qany([])の結果は何ですか?

A

False です。公式ドキュメントは、イテラブルが空なら False を返すと説明しています。

Qall()とany()はどこで判定が止まりますか?

A

all() は最初の偽の要素で、any() は最初の真の要素で止まります。公式ドキュメントに載っている同等のコードがその順で書かれています。

次に見る比較

執筆: AI資格ドリル編集部(運営者情報を見る)