Python all() 関数
all()は、Python で反復可能オブジェクト内のすべての要素が真かどうかを判定するために使用される組み込み関数です。
all()反復可能オブジェクト内のすべての要素を走査し、すべての要素のブール値がTrueである場合、返すのはTrue;それ以外の場合に返すのはFalse。反復可能オブジェクトが空の場合も返すのはTrue。
単語の意味: all「すべて」という意味で、「すべての要素が真である」ことを表します。
基本構文とパラメータ
構文形式
all(iterable)
パラメータの説明
- パラメータ iterable:
- 型:反復可能オブジェクト(リスト、タプル、セット、辞書、文字列など)
- 説明:チェック対象の反復可能オブジェクト。
関数の説明
- 戻り値:ブール値を返します
True或False。 - 空の反復可能オブジェクト:空の反復可能オブジェクトは返します
True(これは数学上の慣例です)。
例
例1:基本的な使い方
例
# リストがすべて True
print(all([True, True, True])) # 出力: True
# リストに False が含まれる
print(all([True, False, True])) # 出力: False
# リストがすべて非ゼロの数値
print(all([1, 2, 3])) # 出力: True
print(all([1, 0, 3])) # 出力: False
# 空のリスト
print(all([])) # 出力: True
print(all([True, True, True])) # 出力: True
# リストに False が含まれる
print(all([True, False, True])) # 出力: False
# リストがすべて非ゼロの数値
print(all([1, 2, 3])) # 出力: True
print(all([1, 0, 3])) # 出力: False
# 空のリスト
print(all([])) # 出力: True
実行結果の予想:
True False True False True
コードの解説:
- すべての要素が真(非ゼロ、非空、None 以外)の場合に True を返します。
- 1つでも偽の要素があれば False を返します。
- 空のリストは True を返します(これは Python の約束事です)。
例2:その他の反復可能オブジェクト
例
# タプル
print(all((1, 2, 3))) # 出力: True
print(all((1, 0, 3))) # 出力: False
# セット
print(all({1, 2, 3})) # 出力: True
print(all({1, 0, 3})) # 出力: False
# 辞書(キーをチェック)
print(all({"a": 1, "b": 2})) # 出力: True
print(all({"": 1})) # 出力: False(空のキーは偽)
# 文字列
print(all("hello")) # 出力: True
print(all("")) # 出力: True(空の文字列)
# ジェネレータ
gen = (x > 0 for x in [1, 2, 3])
print(all(gen)) # 出力: True
print(all((1, 2, 3))) # 出力: True
print(all((1, 0, 3))) # 出力: False
# セット
print(all({1, 2, 3})) # 出力: True
print(all({1, 0, 3})) # 出力: False
# 辞書(キーをチェック)
print(all({"a": 1, "b": 2})) # 出力: True
print(all({"": 1})) # 出力: False(空のキーは偽)
# 文字列
print(all("hello")) # 出力: True
print(all("")) # 出力: True(空の文字列)
# ジェネレータ
gen = (x > 0 for x in [1, 2, 3])
print(all(gen)) # 出力: True
実行結果の予想:
True False True False True False True True True
コードの解説:
- タプルとセットの使い方はリストと同じです。
- 辞書がチェックするのはキーであり、値ではありません。
- 文字列内の各文字の ASCII コードは 0 ではないため、空でない文字列は True を返します。
例3:実際の応用
例
# ユーザー入力を検証
def validate_user(user):
required_fields = ['username', 'email', 'password']
return all(user.get(field) for field in required_fields)
user1 = {'username': 'tom', 'email': '[email protected]', 'password': '123'}
user2 = {'username': 'tom', 'email': '', 'password': '123'}
print(validate_user(user1)) # 出力: True
print(validate_user(user2)) # 出力: False
# すべての数値が正であることを確認
numbers = [1, 2, 3, 4, 5]
print(all(x > 0 for x in numbers)) # 出力: True
numbers = [1, -2, 3]
print(all(x > 0 for x in numbers)) # 出力: False
# リストが特定の要素を含むかどうかを確認
colors = ['red', 'green', 'blue']
required = ['red', 'blue']
print(all(c in colors for c in required)) # 出力: True
def validate_user(user):
required_fields = ['username', 'email', 'password']
return all(user.get(field) for field in required_fields)
user1 = {'username': 'tom', 'email': '[email protected]', 'password': '123'}
user2 = {'username': 'tom', 'email': '', 'password': '123'}
print(validate_user(user1)) # 出力: True
print(validate_user(user2)) # 出力: False
# すべての数値が正であることを確認
numbers = [1, 2, 3, 4, 5]
print(all(x > 0 for x in numbers)) # 出力: True
numbers = [1, -2, 3]
print(all(x > 0 for x in numbers)) # 出力: False
# リストが特定の要素を含むかどうかを確認
colors = ['red', 'green', 'blue']
required = ['red', 'blue']
print(all(c in colors for c in required)) # 出力: True
実行結果の予想:
True False True False True
all()データ検証や条件チェックなどの場面でよく使用され、コードをより簡潔で Pythonic にすることができます。
その他の拡張
Python3 組み込み関数