Pythonのany()とall()の使い方を徹底解説!初心者向けステップバイステップガイド
Pythonのany()とall()は、リストなどの要素を評価して真偽を判定する組み込み関数です。any()はリスト内の要素が1つでもTrueであればTrueを返し、all()はすべての要素がTrueである場合にのみTrueを返します。
プログラミングをしていると、リスト内の値が「どれか1つでもTrueか」「すべてTrueか」を確認したい場面によく出会います。例えば、レーシングドライバーの戦績を管理するプログラムを作っている場合、そのドライバーが特定のシーズンで「1度でも負けたことがあるか」「すべてのレースに負けたか」を判定したいことがあるでしょう。
そんなときに役立つのが、Pythonの組み込み関数であるany()とall()です。any()はオブジェクト内のすべての要素を順に調べ、1つでもTrueと等しい要素があればTrueを返します。all()はオブジェクト内のすべての要素を調べ、すべての要素がTrueである場合にのみTrueを返します。
このチュートリアルでは、Pythonでany()とall()を使う方法を解説し、それぞれをプログラムで活用する具体例を紹介します。
Pythonのany()関数とは
Pythonのany()メソッドは、イテラブルオブジェクト(リスト、文字列、タプルなど)の中に1つでもTrueと等しい値があるかどうかを判定し、あればTrueを返します。そうでなければ、any()はFalseを返します。
any()メソッドが受け取る引数は1つだけです。検索対象となる値を持つオブジェクトを指定します。any()メソッドの構文は以下のとおりです。
any(iterable_object)
any()は、イテラブル内に少なくとも1つTrueの要素があればTrueを返します。
それ以外の場合、つまりすべての要素がTrueでない場合や、イテラブルオブジェクトが空の場合は、Falseを返します。
any()をリスト(配列)で使う
例えば、レーサーのスコアを分析しているデータサイエンス企業に勤めていて、「John Appleseedがインディ500のレースでトップ10に入ったことがあるかどうか」を調べるタスクを任されたとしましょう。彼のレース出場記録のリストがあり、トップ10に入った場合はTrue、入らなかった場合はFalseが格納されています。
彼がインディ500でトップ10に入ったことがあるかどうかを調べるには、次のようなコードを使います。
race_wins_indy_500 = [False, False, True, False] print(any(race_wins_indy_500))
このコードの出力結果は True です。
コードの1行目では、インディ500に出場するたびにトップ10に入ったかどうかを記録するリストを定義しています。次に、any()メソッドを使って、リスト内にTrueの要素が1つでもあるかを確認しています。この場合、彼はインディ500で1度トップ10に入っているため、any()メソッドはTrueを返しました。
any()を辞書で使う
any()メソッドは辞書にも使えます。John Appleseedがあるインディ500のレース(2018年のレース)に出場した記録があり、彼がそのレースでトップ10に入ったかどうかを確認したいとしましょう。次のようなコードで実現できます。
indy_500_2018_john = {
'driver_name': 'John Appleseed',
'race_year': 2018,
'top_ten': True
}
print(any(indy_500_2018_john))
このコードの出力結果は True です。辞書に真と評価される値が含まれているため、any()メソッドはTrueを返します。なお、辞書に対してany()やall()を使う場合は、キーが評価の対象になる点に注意しましょう。
any()を文字列で使う
同様に、any()は文字列やタプルにも使えます。文字列の場合、any()メソッドは文字列に値が含まれていればTrueを返し、そうでなければFalseを返します。
例えば、最新のインディ500レースでのプレイヤーのトップ10順位を格納する文字列に値が入っているかどうかを確認したいとしましょう。次のコードでこのタスクを実現できます。
top_10_ranking = "" print(any(top_10_ranking))
このコードの出力結果は False です。John Appleseedは最新のインディ500レースでトップ10に入らなかったため、変数top_10_rankingは空です。文字列が空であるため、プログラムはFalseと評価します。
Pythonのall()関数とは
all()はPythonの組み込み関数で、イテラブルオブジェクト内のすべての要素がTrueである場合にTrueを返し、そうでなければFalseを返します。また、イテラブルオブジェクトが空の場合、all()メソッドはTrueを返します。
all()メソッドの構文はany()メソッドと同じです。all()は1つの引数、つまり検索対象となるイテラブルオブジェクトを受け取ります。all()メソッドの構文は以下のとおりです。
all(iterable_object)
all()がTrueを返すのは、次の場合です。
- すべての値がTrueと等しい場合
- イテラブルオブジェクトが空の場合
それ以外の場合、all()はFalseを返します。
all()をリスト(配列)で使う
Pythonでall()をどのように使えるのか、例を見ていきましょう。John Appleseedがインディ500のレースでトップ10に入ったかどうかを記録するブール値のリストがあるとします。
彼がすべてのレースでトップ10に入ったかどうかを調べたい場合は、all()メソッドを使えます。以下は、all()を使ってJohn Appleseedがすべてのインディ500レースでトップ10に入ったかどうかを確認するサンプルプログラムです。
race_wins_indy_500 = [False, False, True, False] print(all(race_wins_indy_500))
このコードの出力結果は False です。1行目では、彼がインディ500のレースでトップ10に入ったかどうかを記録するリストを宣言しています。次に、all()を使って、リスト内のすべての値がTrueと等しいかどうかを確認しています。この場合、Trueの値は1つだけなので、プログラムはFalseを返します。
all()を辞書で使う
John Appleseedの2018年インディ500のレース記録を格納する辞書があるとします。辞書内のすべての要素が真と評価されるかどうかを知りたい場合、次のコードを使えます。
indy_500_2018_john = {
'driver_name': 'John Appleseed',
'race_year': 2018,
'top_ten': True
}
print(all(indy_500_2018_john))
このコードの出力結果は True です。辞書のキーはすべて空でない文字列であり、真と評価されるため、コードはTrueを返します。
all()を文字列で使う
同様に、all()もany()メソッドと同じ構文で文字列に使えます。
分析対象のレーサーの名前を格納する文字列があるとします。この文字列が空かどうかを確認したい場合、all()メソッドを使えます。先に述べたように、all()は文字列が空の場合にFalseを返します。以下は、all()を使って、分析対象のレーサーの名前が空かどうかを確認する例です。
racer_name = "John Appleseed" print(all(racer_name))
このコードの出力結果は True です。変数racer_nameに代入された文字列には値が含まれているため、all()メソッドが実行されるとTrueと評価されます。
まとめ
any()メソッドは、イテラブルオブジェクト内の要素が1つでもTrueと評価されるかどうかを確認するために使えます。all()メソッドは、イテラブルオブジェクト内のすべての要素がTrueと評価されるかどうかを確認するために使えます。
このチュートリアルでは、Pythonでany()とall()の両方のメソッドを使う方法を解説し、リスト・辞書・文字列など、さまざまな種類のイテラブルオブジェクトでの使用例を紹介しました。これで、Pythonでany()とall()をプロのように使いこなすための知識が身につきました!
プロのPython開発者を目指してみませんか?今すぐ無料のCareer Karmaアプリをダウンロードして、専門のキャリアコーチに新しいキャリアへの第一歩について相談してみましょう。
-
iPhoneの「計測」アプリ完全ガイド|基本操作からLiDARの隠れた便利機能まで
Appleの「計測(Measure)」アプリは、iOSデバイスに標準搭載されながら意外と知られていない便利なアプリです。2018年のiOS 12で登場して以来、AR(拡張現実)技術を活用し、スマートフォン1つで周囲の物の長さや寸法を手軽に測れる「ARものさし」として活躍しています。 この記事では、計測アプリの基本的な使い方から、LiDARスキャナ搭載機種ならではの高度な機能まで、測定に役立つさまざまな機能の活用方法をわかりやすく解説します。 計測アプリを起動するには 計測アプリはAppleデバイスにプリインストールされています。うっかり削除してしまった場合でも、App Storeから無料で再ダ
-
Pythonのrange()関数とは?基本構文から実践的な使い方まで徹底解説
プログラミング学習のチュートリアルでは、意外と語られることのない重要なポイントがあります。それは、実際の開発では「繰り返し処理」と「カウント処理」を大量に行う必要があるということです。そのため、本格的なプログラミング言語であれば、数値を繰り返し列挙するための仕組みが必ず用意されています。Pythonにおけるrange()シーケンス型は、まさにその代表的な手段の一つです。 この記事では、Pythonのrange()について詳しく解説し、実際のプログラムでの活用方法をご紹介します。 Pythonのrange()シーケンス型とは range()は関数のように見えますが、実際にはPython 3に組