Heim > Backend-Entwicklung > Python-Tutorial > Wie verhalten sich die Python-Funktionen „any()' und „all()' beim Vergleich von Tupeln?

Wie verhalten sich die Python-Funktionen „any()' und „all()' beim Vergleich von Tupeln?

Barbara Streisand
Freigeben: 2024-12-09 20:04:15
Original
591 Leute haben es durchsucht

How Do Python's `any()` and `all()` Functions Behave When Comparing Tuples?

Wie Pythons beliebige und alle Funktionen funktionieren

Beim Vergleich von Tupeln kommen sowohl die integrierten Funktionen „any()“ als auch „all()“ zum Tragen spielen. Sie unterscheiden sich wie folgt:

any()

any() wird als True ausgewertet, wenn mindestens ein Element in einer Iterable wahr ist (d. h. nicht False, 0, '' usw.).

all()

all(), andererseits Andererseits gibt es nur dann „True“ zurück, wenn jedes Element in einer Iterable wahr ist.

Den Anwendungsfall verstehen

Im bereitgestellten Codeausschnitt:

print [any(x) and not all(x) for x in zip(*d['Drd2'])]
Nach dem Login kopieren

Jedes der Tupel in zip(*d['Drd2']) wird im Kontext von any(x) und nicht von all(x) ausgewertet. Die unerwartete Ausgabe von [Falsch, Falsch, Falsch] wirft jedoch Fragen auf.

Fehlerinterpretation

Gemäß der Wahrheitstabelle für alle und alle:

any(x) all(x) any(x) and not all(x)
True False True
False True False
True True False
False False False

In diesem Fall bestehen alle Tupel aus identischen Zahlen (d. h. wahren Werten), sodass „any(x)“ immer „true“ wäre und „all(x)“ wäre auch wahr. Folglich sollte „any(x)“ und nicht „all(x)“ immer „Falsch“ ergeben, was sich nicht in der Ausgabe widerspiegelt.

Fehlerursache

Der Fehler liegt in der irrigen Erwartung, dass (x[0] != x[1]) ein wahrer Ausdruck wäre. Wenn jedoch die Zahlen im Tupel gleich sind (z. B. (1, 1)), wird (x[0] != x[1]) als Falsch ausgewertet.

Korrekte Logik

Um genau zu bestimmen, ob Werte innerhalb eines Tupels unterschiedlich sind, können Sie die folgende Logik verwenden:

print [x[0] != x[1] for x in zip(*d['Drd2'])]
Nach dem Login kopieren

Dieser Ausdruck korrekt vergleicht die entsprechenden Elemente jedes Tupels, um etwaige Unterschiede wie beabsichtigt zu identifizieren.

Das obige ist der detaillierte Inhalt vonWie verhalten sich die Python-Funktionen „any()' und „all()' beim Vergleich von Tupeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage