Die Python-Funktion any() ist eine eingebaute Funktion, die prüft, ob mindestens ein Element in einem übergebenen Iterable den Wahrheitswert True besitzt. Sie eignet sich besonders für logische Prüfungen in Listen, Tupeln oder anderen Iterables und ermöglicht eine effiziente und übersichtliche Umsetzung von Bedingungen. Durch ihre einfache Syntax trägt any() zur Lesbarkeit und Wartbarkeit von Python-Code bei und ist ein nützliches Werkzeug für alltägliche Programmieraufgaben.

Einführung

Die any() Funktion ist eine wichtige Funktion in Python und gehört zu den “Built-in Functions”. Die any() Funktion überprüft, ob mindestens ein Element in einem Iterable (wie Liste, Tupel, Set, etc.) einen “truthy” Wert hat.

Syntax

Python Syntax
any(iterable)
Parameter
iterable

Jedes Iterable (Liste, Tupel, String, Generator, etc.), also eine Sammlung von Elementen, die durchlaufen werden können.

Rückgabewert

Die any() Funktion gibt immer einen booleschen Wert zurück.

  • True: Wenn mindestens ein Element im Iterable “truthy” ist.
  • False: Wenn alle Elemente “falsy” sind ODER das Iterable leer ist.

Besonderheiten

Short-Circuit Evaluation

Die any() Funktion verwendet “Short-Circuit Evaluation”, was bedeutet:

  • Sie stoppt sofort beim ersten True Wert.
  • Nicht alle Elemente werden evaluiert, wenn ein True gefunden wird.

Verhalten bei leerem Iterable

Ein leeres Iterable gibt immer False zurück, was logisch ist, da es kein Element gibt, welches ein True liefern kann.

Python
any([]) # False

Grundlegende Verwendung

Python Grundlegende Verwendung
# Listen mit booleschen Werten
print(any([True, False, False])) # True
print(any([False, False, False])) # False
print(any([])) # False (leere Liste)

# Listen mit Zahlen
print(any([0, 0, 1])) # True
print(any([0, 0, 0])) # False
print(any([0, 0.0, -1])) # True

# Listen mit Strings
print(any(["", "", "Hello"])) # True
print(any(["", "", ""])) # False
print(any(["", " ", ""])) # True

Praktische Anwendungsfälle (Beispiele)

Validierung von Eingaben

Die nachfolgende Funktion überprüft, ob mindestens eines der erforderlichen Felder einen Wert hat. Da ‘email’ einen Wert enthält, gibt any() ein True zurück.

Python Beispiel - Validierung
def validate_user_input(data):
    """
    Überprüft, ob mindestens ein Eingabefeld
    ausgefüllt ist.
    """
    required_fields = [
        data.get("name"),
        data.get("email"),
        data.get("phone")
    ]

    return any(required_fields)


user_data = {
    "name": "",
    "email": "test@example.com",
    "phone": ""
}
is_valid = validate_user_input(user_data)
print(is_valid)
Output
True

Suche in Collections

Der Generator-Ausdruck (num < 0 for num in numbers) erzeugt für jede Zahl einen booleschen Wert. Die Funktion any() gibt True zurück, sobald die erste negative Zahl gefunden wird.

Python Beispiel - Suche in Collections
def contains_negative_number(nums):
    """
    Überprüft, ob mindestens eine negative
    Zahl vorhanden ist.
    """
    return any(num < 0 for num in nums)

test_nums = [1, 5, -3, 8, 10]
has_negative = contains_negative_number(test_nums)
print(has_negative)
Output
True

Verwendung mit Generator Expressions

Generator Expressions sind ziemlich mächtig mit any(). Sie erzeugen on-demand boolesche Werte. Die Short-Circuit Evaluation stoppt bei der ersten True Bedingung.

Python Beispiel - Generator Expression
# Überprüfung auf gerade Zahlen
numbers = [1, 3, 5, 7, 8, 9]
has_even = any(num % 2 == 0 for num in numbers)
print(f"Hat gerade Zahlen: {has_even}")

# Überprüfung auf Strings mit bestimmter Länge
words = ["hi", "hello", "py", "python"]
has_long_word = any(len(word) > 5 for word in words)
print(f"Hat Wörter länger als 5 Zeichen: {has_long_word}")

# Überprüfung auf bestimmte Zeichen
text_list = ["apple", "banana", "cherry"]
contains_a = any("a" in word for word in text_list)
print(f"Mindestens ein Wort enthält a: {contains_a}")
Output
Hat gerade Zahlen: True
Hat Wörter länger als 5 Zeichen: True
Mindestens ein Wort enthält a: True

Verschachtelte Datenstrukturen

Bei verschachtelten Strukturen kann die Funktion any() ebenfalls sehr nützlich sein. Dictionary.values() gibt die Werte zurück, die dann überprüft werden. Komplexe Objekt-Zugriffe sind mit Generator Expressions möglich.

Python Beispiel - Verschachtelte Strukturen
data = [[], [1, 2], [], []]
has_non_empty_sublist = any(sublist for sublist in data)
print(f"Hat nicht-leere Unterliste: {has_non_empty_sublist}")

# Dictionary-Werte überprüfen
user_permissions = {
    "read": False,
    "write": False,
    "admin": True
}
has_any_permission = any(user_permissions.values())
print(f"Hat mindestens eine Berechtigung: {has_any_permissions}")

# Komplexe Bedingungen mit Dictionaries
users = [
    {"name": "Alice", "active": False},
    {"name": "John", "active": False},
    {"name": "Tom", "active": True}
]
has_active_user = any(user["active"] for user in users)
print(f"Hat aktive Benutzer: {has_active_user}")
Output
Hat nicht-leere Unterliste: True
Hat mindestens eine Berechtigung: True
Hat aktive Benutzer: True
/ Weiter

Zurück zu Builtin Functions

Zur Übersicht