【Python】any()でいずれかの要素がTrueであるかを判定する!
(*このページは2021年2月17日に更新されました。)
PythonでTrueと判断される要素を持つイテレータブルオブジェクトを判定するにはany()を使用します。
any()とはイテレータブルオブジェクトでいずれかの要素が真であるならTrueを、それ以外はFalseを返す関数であり、Trueと判断される要素を一つ以上持っているリストやタプルなどを確認することができます。
any()でTrueであるかFalseであるかを判断するには数値や文字列、イテレータブルオブジェクトなどで条件がありますのでぜひ、この記事を読んで確認してみましょう。
また、not any()を使用することですべての要素がFalseかどうかを判定することができます。
今回はPythonのany()でいずれかの要素がTrueであるかを判定する方法について以下の内容で解説していきます。
⚫︎ 要素が数値である場合
⚫︎ 要素が文字列である場合
⚫︎ 要素がイテレータブルオブジェクトである場合
⚫︎ パラメータのイテレータブルオブジェクトが空である場合
⚫︎ すべての要素がFalseかどうかを判定する方法
目次
any()とは
any()とは、イテレータブルオブジェクトのいずれかの要素が真ならばTrueを返し、空ならFalseを返す関数となります。
また、all()は以下のコードと同等となると公式ドキュメントには記述しています。
12345 def any(iterable):for element in iterable:if element:return Truereturn False
any()の書き方
any()の書き方は下記となります。
1 |
any(イテレータブルオブジェクト) |
any()のパラメータ
⚫︎ イテレータブルオブジェクト:
いずれかの要素の値がTrueかどうかを判断するイテレータブルオブジェクト(リストやタプルなど)を指定する
any()にイテレータブルオブジェクトを指定することで、指定したイテレータブルオブジェクト内の要素のいずいれかがTrueであるかどうかを判断することができ、一つ以上Trueと判断される要素があるならTrueを、Trueと判断されない要素のみならFalseが返されます。
any()がTrueを返す要素の条件
any()がTrueを返す要素の条件は以下となります。
⚫︎ 0以外の数値が1つでも含まれている:
any()は0以外の数値が1つでも含まれている場合はTrueを返し、0以外の数値が1つでも含まれていない場合はFalseを返すようになります。
⚫︎ 空白(”)以外の文字列が1つでも含まれている:
any()は空白(”)以外の文字列が1つでも含まれている場合はTrueを返し、空白(”)以外の文字列が含まれていない場合はFalseを返すようになります。
⚫︎ 空でないイテレータブルオブジェクトが1つでも含まれている:
any()は空でないイテレータブルオブジェクトが1つでも含まれている場合はTrueを返し、空でないイテレータブルオブジェクトが1つでも含まれていない場合はFalseを返すようになります。
⚫︎ Trueの真偽値が1つでも含まれている:
any()はTrueの真偽値が1つでも含まれている場合はTrueを返し、Trueの真偽値が1つでも含まれていない場合はFalseを返すようになります。
いずれかの要素がTrueであるかを判定するサンプルコード
any()でいずれかの要素がTrueであるかを判定するサンプルコードを紹介します。
要素が数値である場合
any()で要素が数値である場合にいずれかの要素がTrueかどうかの判定を行ってみます。
例
1 2 3 4 5 6 7 8 9 |
print('・any()でいずれかの要素がTrueであるかを判定') list1 = [345, 347, 4.5, 0] print('判定対象:', list1) print('判定後:', any(list1)) list2 = [0, 0, 0, 0] print('判定対象:', list2) print('判定後:', any(list2)) |
出力結果
・any()でいずれかの要素がTrueであるかを判定
判定対象: [345, 347, 4.5, 0]
判定後: True
判定対象: [0, 0, 0, 0]
判定後: False
any()によって要素が数値である場合にいずれかの要素がTrueであるかを判定しています。
その為、0以外の数値が一つでも含まれているリストにはTrueを、全ての数値が0であるリストにはFalseが返されています。
要素が文字列である場合
any()で要素が文字列である場合にいずれかの要素がTrueかどうかの判定を行ってみます。
例
1 2 3 4 5 6 7 8 9 |
print('・any()でいずれかの要素がTrueであるかを判定') tuple1 = ('東京', '大阪', '愛知', '福岡', '') print('判定対象:', tuple1) print('判定後:', any(tuple1)) tuple2 = ('', '', '', '') print('判定対象:', tuple2) print('判定後:', any(tuple2)) |
出力結果
・any()でいずれかの要素がTrueであるかを判定
判定対象: (‘東京’, ‘大阪’, ‘愛知’, ‘福岡’, ”)
判定後: True
判定対象: (”, ”, ”, ”)
判定後: False
any()によって要素が文字列である場合に要素内のどれかがTrueであるかを判定しています。
その為、空白でない文字列が一つでも含まれているタプルにはTrueを、全て空白であるタプルにはFalseが返されています。
要素がイテレータブルオブジェクトである場合
any()で要素がイテレータブルオブジェクである場合にいずれかの要素がTrueかどうかの判定を行ってみます。
例
1 2 3 4 5 6 7 8 9 |
print('・any()でいずれかの要素がTrueであるかを判定') list1 = [['大阪', '京都', ''] , ['愛知', '岐阜', ''] , []] print('判定対象:', list1) print('判定後:', any(list1)) list2 = [[], []] print('判定対象:', list2) print('判定後:', any(list2)) |
出力結果
・any()でいずれかの要素がTrueであるかを判定
判定対象: [[‘大阪’, ‘京都’, ”], [‘愛知’, ‘岐阜’, ”], []]
判定後: True
判定対象: [[], []]
判定後: False
any()によって要素がイテレータブルオブジェクトである場合にいずれかの要素がTrueであるかを判定しています。
その為、空状態ではないイテレータブルオブジェクトが一つでも含まれているリストにはTrueを、空状態であるイテレータブルオブジェクトが含まれているリストにはFalseが返されています。
パラメータのイテレータブルオブジェクトが空である場合
パラメータのイテレータブルオブジェクトが空である場合、any()はFalseを返すようになります。
例
1 2 3 4 5 6 7 8 9 |
print('・any()でイテレータブルオブジェクトが空の場合にTrueかどうかを判定') list1 = [] print('判定対象:', list1) print('判定後:', any(list1)) list2 = () print('判定対象:', list2) print('判定後:', any(list2)) |
出力結果
・any()でイテレータブルオブジェクトが空の場合にTrueかどうかを判定
判定対象: []
判定後: False
判定対象: ()
判定後: False
any()のパラメータのイテレータブルオブジェクトが空の場合はFalseが返されています。
すべての要素がFalseかどうかを判定する方法
すべての要素がFalseかどうかを判定するにはnot any()を使用します。
例
1 2 3 4 5 6 7 8 9 |
print('・not any()ですべての要素がFalseかどうかを判定') list1 = [] list2 = ['択捉島', '国後島', '色丹島', '歯舞諸島'] print('判定対象:', list1) print('any()判定後:', not any(list1)) print('判定対象:', list2) print('any()判定後:', not any(list2)) |
出力結果
・not any()ですべての要素がFalseかどうかを判定
判定対象: []
any()判定後: True
判定対象: [‘択捉島’, ‘国後島’, ‘色丹島’, ‘歯舞諸島’]
any()判定後: False
not any()ですべての要素がFalseかどうかを判定しています。
その為、リストが空である場合はTrueを返し、リストが空でない場合はFalseが返されています。
今回のポイント
any()で全ての要素がTrueかどうかを判定
Pythonでイテレータブルオブジェクトのいずれかの要素がTrueかどうかを判定するにはany()を使用する。
⚫︎ any()のパラメータにはイテレータブルオブジェクトを指定する
⚫︎ any()で要素の数値を判断する場合、0以外の数値が1つでも含まれいるとTrueを、全ての数値が0がであるとFalseが返される
⚫︎ any()で要素の文字列を判断する場合、空白以外の文字列が1つでも含まれているとTrueを、全て空白であるとFalseが返される
⚫︎ any()で要素のイテレータブルオブジェクトを判断する場合、空状態ではないイテレータブルオブジェクトが一つでも含まれているとTrueを、全て空状態のイテレータブルオブジェクトだとFalseが返される
⚫︎ any()でパラメータのイテレータブルオブジェクトが空である場合はFalseが返される
⚫︎ すべての要素がFalseかどうかを判定するにはnot any()を使用する
関連記事
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。