navigation Navigation


Inhaltsverzeichnis

all()


Die Python-Funktion all() prüft, ob alle Elemente eines übergebenen Iterables wahr (truthy) sind. Gibt es mindestens ein Element, das als falsch (falsy) bewertet wird, liefert all() den Wert False zurück. Ist das Iterable leer, gibt die Funktion True zurück. all() eignet sich besonders zur Validierung von Bedingungen in Listen, Tupeln oder anderen iterierbaren Objekten und wird häufig in Kombination mit Generatorausdrücken oder Listen-Komprehension verwendet.

Inhaltsverzeichnis

    Einführung

    Die Funktion all() gehört zu den eingebauten Funktionen in Python und ist ein essenzielles Werkzeug, wenn man prüfen möchte, ob alle Elemente eines Iterables “wahr” sind.

    Die Funktion nimmt ein beliebiges Iterable (z.B. Liste, Tuple, Set, Generator, Dict-View) und liefert True, wenn jedes Element truthy ist. Sobald ein Element False liefert, bricht all() die Iteration sofort ab und liefert False.

    Syntax

    Syntax
    all(iterable)
    iterable

    Ein Objekt, über das iteriert werden kann.


    Rückgabewert

    • True: Wenn alle Elemente truthy sind oder wenn das Iterable leer ist.
    • False: Sobald irgendein Element falsy ist.

    Besonderheiten

    Kurzschlussverhalten (early exit)

    Die Funktion all() stoppt beim ersten falsy Element. Das spart Zeit und Speicher - insbesondere bei großen oder gestreamten Daten.

    Beispiel
    def all_positive(nums):
        return all(n > 0 for n in nums)

    Leeres Iterable

    Ein leeres Iterable ergibt immer ein True, da es keine Elemente gibt, die eine Bedingung nicht erfüllen könnten.

    Beispiel
    all([]) # True
    all(x > 0 for x in []) # True

    Iteratoren werden verbraucht

    Bei Generatoren/Iteratoren “konsumiert” all() Elemente bis zum ersten Falsy bzw. bis zum Ende. Danach ist der Iterator (teilweise/komplett) aufgebraucht.

    Beispiel
    iterator = (x > 0 for x in [1, 2, 0, 3])
    all(iterator)
    list(iterator)

    Beispiele

    Mit Listen

    Beispiel - Listen
    print(all([True, True, True])) # True
    print(all([True, False, True])) # False
    print(all([1, 2, 3])) # True
    print(all([1, 0, 3])) # False

    Mit Strings

    Beispiel - Strings
    print(all("Hello")) # True
    print(all("")) # True

    Mit verschiedenen Datentypen

    Beispiel - Datentypen
    print(all([1, "Text", True, 3.14])) # True
    print(all([1, "", True])) # False (leerer String)

    Mit Bedingungen

    Beispiel - Liste von Zahlen
    nums = [2, 4, 6, 8, 10]
    print(all(x % 2 == 0 for x in nums))
    Beispiel - String Validierung
    passwords = ["Abc123!", "Test456@", "Password789#"]
    print(all(len(pwd) >= 8 for pwd in passwords))

    None und falsy Werte

    Folgende Werte liefern bei Anwendung mit all() ein False.

    None und falsy Werte
    print(all([None])) # False
    print(all([0])) # False
    print(all([False])) # False
    print(all([[]])) # False (leere Liste)
    print(all([{}])) # False (leeres Dictionary)
    print(all([""])) # False (leerer String)

    Praktische Beispiele

    Beispiel - Formularvalidierung

    Beispiel - Formularvalidierung
    def validate_form(form_data):
        validations = [
            form_data.get("name") and len(form_data["name"] > 0),
            form_data.get("email") and "@" in form_data["email"],
            form_data.get("age") and form_data["age"] >= 18,
            form_data.get("terms_accepted") == True
        ]
    
        return all(validations)
    
    
    form_data = {
        "name": "Max Mustermann",
        "email": "max@example.com",
        "age": 30,
        "terms_accepted": True
    }
    
    print(validate_form(form_data))

    Beispiel - Datenqualitätsprüfung

    Beispiel - Datenqualitätsprüfung
    def check_data_quality(dataset):
        return all([
            all(row["price"] > 0 for row in dataset),
            all(row["quantity"] >= 0 for row in dataset),
            all(row["id"] is not None for row in dataset)
        ])
    
    products = [
        {"id": 1, "price": 10.99, "quantity": 5},
        {"id": 2, "price": 25.50, "quantity": 0},
        {"id": 3, "price": 7.99, "quantity": 12}
    ]
    
    print(check_data_quality(products))

    Beispiel - Berechtigungsprüfung

    Beispiel
    def has_all_permissions(user_permissions, required_permissions):
        return all(perm in user_permissions for perm in required_permissions)
    
    user_perms = ["read", "write", "delete", "admin"]
    required_perms = ["read", "write"]
    
    print(has_all_permissions(user_perms, required_perms))

    Beispiel - Komplexes Objekt

    Beispiel - Objekt
    class Product:
    
        def __init__(self, name, price, in_stock):
            self.name = name
            self.price = price
            self.in_stock = in_stock
    
        def print_action(self):
            print(f"Do check: {self.name}")
    
        def is_available(self):
            self.print_action()
            return self.in_stock and self.price > 0
    
    
    products = [
        Product("Laptop", 999.99, True),
        Product("Mouse", 29.99, True),
        Product("Keyboard", 49.99, True)
    ]
    
    print(all(p.is_available() for p in products))
    Do check: Laptop
    Do check: Mouse
    Do check: Keyboard
    True