用語比較
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([]) は True | any([]) は False |
| False を返す条件 | 偽の要素が1つでもある | すべての要素が偽、または空 |
| 判定が止まるタイミング | 最初の偽の要素で止まる | 最初の真の要素で止まる |
| 条件式との組み合わせ | all(n >= 5 for n in nums):全員が5以上か | any(n >= 5 for n in nums):5以上が1人でもいるか |
Python3エンジニア認定基礎試験の学習に使う書籍(Amazon)
PRどこで迷っているかを切り分ける
全部の点数が合格点以上かを調べたい人
all() を使い、all(n >= 5 for n in nums) のように書きます。1つでも5未満があれば False になります。
1つでも条件に合うデータがあるかを調べたい人
any() を使い、any(n >= 10 for n in nums) のように書きます。10以上の要素が1つでもあれば True になります。
空のリストを渡したときの結果を問われた人
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つでも条件を満たすか」かを決めます。
- 2
前者なら all()
すべてが条件を満たすかを調べるときは all() を使います。
- 3
後者なら any()
1つでも条件を満たすかを調べるときは any() を使います。
- 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・空のリスト)を挙げられる
関連ページで確認する
同じ資格で次に知りたいこと
- dictのkeys()・values()・items()の違い|キーだけ、値だけ、キーと値の組を取り出す(Python3基礎)
dictのkeys()・values()・items()の違いを、取り出すもの、for文での受け取り方、辞書を変更したときの見え方、リストとの違いで解説。Python3エンジニア認定基礎試験の第5章(辞書)の確認問題つきです。
- match文とif-elif-elseの違い|同じ値を複数の定数と比べるときの使い分け(Python3基礎)
match文とif-elif-elseの違いを、比べ方・どれにも当てはまらない場合・値の取り出しで整理します。Python公式チュートリアル4.1と4.7の記述、case _ とelseの対応、確認問題つき。
- pass文とcontinue文の違い|何もしないか、ループの次の繰り返しへ進むか(Python3基礎)
pass文とcontinue文の違いを、動き(何もしないか、残りを飛ばすか)、使える場所、同じループに入れたときの結果で解説。Python3エンジニア認定基礎試験の第4章(制御構造ツール)の確認問題つきです。
よくある質問
Qall()とany()の違いは何ですか?
all() はすべての要素が真のときに True、any() は1つでも真の要素があるときに True を返します。
Qall([])の結果は何ですか?
True です。公式ドキュメントは、イテラブルが空のときも True を返すと説明しています。
Qany([])の結果は何ですか?
False です。公式ドキュメントは、イテラブルが空なら False を返すと説明しています。
Qall()とany()はどこで判定が止まりますか?
all() は最初の偽の要素で、any() は最初の真の要素で止まります。公式ドキュメントに載っている同等のコードがその順で書かれています。
次に見る比較
- G検定・DS検定・統計検定2級で重なる用語10語の比較
同じ名前の用語の定義と収録章を、資格ごとに並べます。
- ベイズの定理と条件付き確率の違い(統計検定2級の式と計算例)
求める確率の向きの違いと、陽性になる確率の計算例を確かめます。
- 紛らわしい用語ペア早見表
混同しやすい用語の違いと判定の手掛かりを、資格別の一覧で確かめます。
執筆: AI資格ドリル編集部(運営者情報を見る)
