Heim >Backend-Entwicklung >Python-Tutorial >Wie funktionieren die Funktionen „any' und „all' von Python beim Listenverständnis und warum könnte dies „[False, False, False]' zurückgeben?

Wie funktionieren die Funktionen „any' und „all' von Python beim Listenverständnis und warum könnte dies „[False, False, False]' zurückgeben?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-10 01:19:13538Durchsuche

How Do Python's `any` and `all` Functions Work in List Comprehension, and Why Might This Return `[False, False, False]`?

Die Any-and-All-Funktionen von Python verstehen

Die Any-and-All-Funktionen von Python sind integrierte Funktionen, die Iterables auswerten und einen booleschen Wert basierend auf dem zurückgeben Wahrhaftigkeit ihrer elements.

any

any gibt True zurück, wenn mindestens ein Element im Iterable True ist (oder ungleich Null für numerische Werte). Es wertet das Iterable aus, bis ein True-Wert gefunden wird oder alle Elemente erschöpft sind.

all

all gibt nur dann True zurück, wenn alle Elemente im Iterable True sind. Wenn das Iterable leer ist, gibt all „True“ zurück. Das iterierbare Element wird so lange ausgewertet, bis ein falscher Wert gefunden wird oder alle Elemente untersucht wurden.

Wahrheit

Das Verständnis der Wahrhaftigkeit ist entscheidend, um zu verstehen, wie alle Elemente funktionieren. In Python gelten Werte als wahr, wenn sie nicht Null, leere Zeichenfolgen oder None (Null) sind. Zu den Falsey-Werten gehören 0, leere Container und False selbst.

Ihr Code

In Ihrem Code verwenden Sie das Listenverständnis:

[any(x) and not all(x) for x in zip(*d['Drd2'])]

Um diesen Ausdruck zu verstehen, brechen wir ihn auf down:

  • zip(*d['Drd2']): Erstellt eine Liste von Tupeln, indem entsprechende Elemente aus verschiedenen Listen in d['Drd2'] gruppiert werden.
  • für x in zip(*d['Drd2']): iteriert über Tupel in der erstellten Liste von Tupeln.
  • any(x): wertet aus, ob ein Element in a gegebenes Tupel ist wahr.
  • nicht alle(x): wertet aus, ob nicht alle Elemente in einem gegebenen Tupel wahr sind.
  • und: kombiniert die Ergebnisse der vorhergehenden Ausdrücke.

Warum False zurückgegeben wird

Ihr Code gibt [False, False, False] zurück, weil er prüft wenn für jedes Tupel in der Liste der Tupel mindestens ein Wert True ist und gleichzeitig nicht alle Werte True sind. Da die Tupel in d['Drd2'] identische Elemente haben, ist all(x) für jedes Tupel wahr, was bedeutet, dass nicht all(x) falsch ist. Folglich wird der Gesamtausdruck zu „any(x)“ und nicht „all(x)“ wird für jedes Tupel als „Falsch“ ausgewertet.

Das obige ist der detaillierte Inhalt vonWie funktionieren die Funktionen „any' und „all' von Python beim Listenverständnis und warum könnte dies „[False, False, False]' zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn