Python any() 関数
any()反復可能オブジェクトの中に少なくとも1つの真値が存在するかどうかを判定するためのPythonの組み込み関数です。
any()反復可能オブジェクト内のすべての要素を走査し、いずれかの要素のブール値がTrueの場合、返しますTrue;そうでない場合は返しますFalse。反復可能オブジェクトが空の場合、返しますFalse。
単語の意味: any「任意」を意味し、「いずれかが真である」という意味を表します。
基本構文とパラメータ
構文形式
any(iterable)
パラメータの説明
- パラメータ iterable:
- 型: 反復可能オブジェクト
- 説明: チェックする反復可能オブジェクト。
関数の説明
- 戻り値: ブール値を返します
True或False。 - 空の反復: 空の反復可能オブジェクトは返します
False。
実例
例 1:基本的な使い方
実例
# リストに True がある
print(any([False, True, False])) # 出力: True
# リストがすべて False
print(any([False, False, False])) # 出力: False
# リストに非ゼロの数字がある
print(any([0, 1, 0])) # 出力: True
print(any([0, 0, 0])) # 出力: False
# 空のリスト
print(any([])) # 出力: False
print(any([False, True, False])) # 出力: True
# リストがすべて False
print(any([False, False, False])) # 出力: False
# リストに非ゼロの数字がある
print(any([0, 1, 0])) # 出力: True
print(any([0, 0, 0])) # 出力: False
# 空のリスト
print(any([])) # 出力: False
実行結果の予想:
True False True False False
コードの解説:
- 1つでも要素が真(非ゼロ、非空、非 None)であれば、True を返します。
- すべての要素が偽の場合にのみ、False を返します。
- 空のリストは False を返します。
例 2:その他の反復可能オブジェクト
実例
# タプル
print(any((0, 0, 1))) # 出力: True
print(any((0, 0, 0))) # 出力: False
# セット
print(any({0, 1, 2})) # 出力: True
print(any({0, 0, 0})) # 出力: False
# 辞書(キーを確認)
print(any({"a": 0, "b": 1})) # 出力: True
print(any({"": 0})) # 出力: False(空のキーは偽)
# 文字列
print(any("hello")) # 出力: True(すべての文字のASCII > 0)
print(any("")) # 出力: False(空の文字列)
# ジェネレータ
gen = (x > 5 for x in [1, 2, 3])
print(any(gen)) # 出力: False
print(any((0, 0, 1))) # 出力: True
print(any((0, 0, 0))) # 出力: False
# セット
print(any({0, 1, 2})) # 出力: True
print(any({0, 0, 0})) # 出力: False
# 辞書(キーを確認)
print(any({"a": 0, "b": 1})) # 出力: True
print(any({"": 0})) # 出力: False(空のキーは偽)
# 文字列
print(any("hello")) # 出力: True(すべての文字のASCII > 0)
print(any("")) # 出力: False(空の文字列)
# ジェネレータ
gen = (x > 5 for x in [1, 2, 3])
print(any(gen)) # 出力: False
実行結果の予想:
True False True False True False True False False
コードの解説:
- タプル、セット、辞書の使い方はリストと同じです。
- 文字列の各文字のASCIIコードは0ではないので、空でない文字列は True を返します。
例 3:実際の応用
実例
# リストに負の数があるか確認
numbers = [1, 2, -3, 4, 5]
has_negative = any(x < 0 for x in numbers)
print(f"負の数あり: {has_negative}") # 出力: 負の数あり: True
# 文字列が特定の文字を含むか確認
text = "Hello World"
vowels = "aeiou"
has_vowel = any(c in vowels for c in text.lower())
print(f"母音を含む: {has_vowel}") # 出力: 母音を含む: True
# ユーザー入力を検証
def validate_input(data):
required_keys = ['username', 'password']
return any(data.get(key) for key in required_keys)
user1 = {'username': 'tom', 'password': ''}
user2 = {'username': '', 'password': '123'}
user3 = {'username': 'tom', 'password': '123'}
print(validate_input(user1)) # 出力: True
print(validate_input(user2)) # 出力: True
print(validate_input(user3)) # 出力: True
numbers = [1, 2, -3, 4, 5]
has_negative = any(x < 0 for x in numbers)
print(f"負の数あり: {has_negative}") # 出力: 負の数あり: True
# 文字列が特定の文字を含むか確認
text = "Hello World"
vowels = "aeiou"
has_vowel = any(c in vowels for c in text.lower())
print(f"母音を含む: {has_vowel}") # 出力: 母音を含む: True
# ユーザー入力を検証
def validate_input(data):
required_keys = ['username', 'password']
return any(data.get(key) for key in required_keys)
user1 = {'username': 'tom', 'password': ''}
user2 = {'username': '', 'password': '123'}
user3 = {'username': 'tom', 'password': '123'}
print(validate_input(user1)) # 出力: True
print(validate_input(user2)) # 出力: True
print(validate_input(user3)) # 出力: True
実行結果の予想:
有负数: True 包含元音字母: True True True True
any()とall()相補的な関数であり、データ検証や条件チェックによく使用されます。
その他の拡張
Python3 組み込み関数