Python any()とは?使い方・具体例・all()との違いを初心者向けに解説

Pythonのany()は、複数の値の中に1つでもTrueとみなせる値があるかを判定する関数です。

リストやタプルなどの要素をまとめて判定したいときに便利で、条件判定やデータ処理などでよく使われます。

この記事では、Python初心者向けにany()の基本的な使い方から、all()との違い、条件式との組み合わせまでわかりやすく解説します。

Pythonのany()とは?

any()は、指定したイテラブルの要素に1つでもTrueがあればTrueを返す関数です。

基本構文は次のとおりです。

any(イテラブル)

例えば、次のコードを見てみましょう。

numbers = [False, False, True]

print(any(numbers))

実行結果:

True

リストの中にTrueが1つあるため、any()はTrueを返します。

一方、すべての要素がFalseの場合はFalseになります。

numbers = [False, False, False]

print(any(numbers))

実行結果:

False

any()の基本的な使い方

TrueとFalseを判定する

最も基本的な使い方です。

data = [True, False, False]

result = any(data)

print(result)

実行結果:

True

1つでもTrueが含まれていれば、結果はTrueです。

数値を判定する

any()では、数値の0はFalse、0以外はTrueとして扱われます。

numbers = [0, 0, 10]

print(any(numbers))

実行結果:

True

10がTrueとして扱われるためです。

すべて0の場合はFalseになります。

numbers = [0, 0, 0]

print(any(numbers))

実行結果:

False

any()と条件式を組み合わせる

any()は、条件式と組み合わせることで特に便利になります。

例えば、リストの中に10以上の数字が1つでもあるか調べる場合です。

numbers = [3, 7, 12, 5]

result = any(number >= 10 for number in numbers)

print(result)

実行結果:

True

12 >= 10が成立するため、Trueになります。

この書き方は、Pythonでany()を使う代表的なパターンです。

any()で文字列を判定する

文字列のリストに特定の文字列が含まれているかを判定することもできます。

words = ["apple", "banana", "orange"]

result = any(word == "banana" for word in words)

print(result)

実行結果:

True

bananaが存在するため、Trueになります。

複数の条件を確認する

例えば、名前の中に「Python」が含まれているものが1つでもあるかを調べます。

words = ["Java", "Ruby", "Python", "PHP"]

result = any("Python" in word for word in words)

print(result)

実行結果:

True

any()とfor文の違い

同じ処理をfor文で書くこともできます。

例えば、10以上の数字があるかを調べる処理です。

numbers = [3, 7, 12, 5]

result = False

for number in numbers:
    if number >= 10:
        result = True
        break

print(result)

これをany()を使うと、次のように短く書けます。

numbers = [3, 7, 12, 5]

result = any(number >= 10 for number in numbers)

print(result)

any()を使うことで、「1つでも条件を満たすものがあるか」という意図を簡潔に表現できます。

any()とall()の違い

any()とよく比較されるのがall()です。

違いを簡単にまとめると次のとおりです。

関数 判定
any() 1つでもTrueならTrue
all() すべてTrueならTrue

例えば、

data = [True, False, True]

print(any(data))
print(all(data))

実行結果:

True
False

any()は1つでもTrueがあればTrueです。

一方、all()はすべてTrueでなければTrueになりません。

覚え方

英単語の意味で覚えると簡単です。

  • any = どれか、いずれか

  • all = すべて

つまり、

any() → どれか1つでもOK

all() → すべてOK

と覚えるとよいでしょう。

any()の戻り値

any()が返す値は、必ずTrueまたはFalseです。

print(any([1, 2, 3]))

実行結果:

True
print(any([0, 0, 0]))

実行結果:

False

空のリストにany()を使った場合

空のリストをany()に渡すとFalseになります。

data = []

print(any(data))

実行結果:

False

「1つでもTrueがあるか」という判定なので、要素が1つもなければTrueにはなりません。

any()で覚えておきたいTruthyとFalsy

any()では、値がそのまま真偽値として判定されます。

例えば、次の値はFalseとして扱われます。

False
0
0.0
""
None
[]
()
{}

それ以外の多くの値はTrueとして扱われます。

例えば、

data = ["", "", "Python"]

print(any(data))

実行結果:

True

"Python"がTrueとして扱われるためです。

any()を使った実践例

例えば、テストの点数の中に80点以上があるかを調べます。

scores = [65, 72, 91, 58]

if any(score >= 80 for score in scores):
    print("80点以上の人がいます")
else:
    print("80点以上の人はいません")

実行結果:

80点以上の人がいます

このようにif文と組み合わせると、実際のプログラムでも使いやすくなります。

any()はどんなときに使う?

any()は、次のような処理で便利です。

  • 条件を満たすデータが1つでもあるか確認する

  • リストに特定の値が存在するか確認する

  • 複数の条件のうち、どれかが成立するか調べる

  • データをまとめてチェックする

  • for文による判定処理を簡潔にする

特に、

any(条件式 for 変数 in データ)

という形は、Pythonでは非常によく使われます。

関連記事

近いテーマの記事です。あわせてどうぞ。

any()のまとめ

Pythonのany()は、イテラブルの中に1つでもTrueとみなせる値があるかを判定する関数です。

基本的な使い方は、

any(データ)

です。

条件式と組み合わせる場合は、

any(条件式 for 変数 in データ)

と書けます。

例えば、

numbers = [3, 7, 12, 5]

print(any(number >= 10 for number in numbers))

なら、10以上の数字が1つでもあればTrueになります。

「1つでも条件を満たす?」と考えたらany()、「全部条件を満たす?」と考えたらall()と覚えておくと、使い分けやすくなります。


あわせて読みたい

any()は、Pythonの組み込み関数の1つです。ほかの関数・メソッドとあわせて確認したい方は、次の一覧ページをご覧ください。

プログラミング学習に興味がある方は、まずは無料体験会へ

無料体験会・お申し込みはこちら