Heim > Backend-Entwicklung > Python-Tutorial > Warum funktioniert „nicht in' mit Tupeln in Python nicht wie erwartet?

Warum funktioniert „nicht in' mit Tupeln in Python nicht wie erwartet?

Barbara Streisand
Freigeben: 2024-10-30 09:20:03
Original
473 Leute haben es durchsucht

Why Doesn't

Überprüfen der Abwesenheit von Elementen in einer Liste mit Python

In Python kann die Überprüfung, ob ein Element in einer Liste nicht vorhanden ist, durch erreicht werden „nicht in“-Operator. Bei der Arbeit mit Listen von Tupeln tritt jedoch eine häufige Gefahr auf.

Anfänglicher Code:

Im bereitgestellten Code:

if curr_x -1 > 0 and (curr_x-1 , curr_y) not in myList: 

    # Do Something
Nach dem Login kopieren

Der Programmierer beabsichtigt, den „if“-Zweig nur dann auszuführen, wenn das spezifische Tupel (curr_x-1, curr_y) nicht in der myList enthalten ist. Der Code scheint jedoch nicht richtig zu funktionieren.

Ursache des Problems:

Das Problem ist nicht auf den logischen Ausdruck (curr_x-1, curr_y) zurückzuführen, der nicht in myList enthalten ist . Dieser Ausdruck wird korrekt als „True“ ausgewertet, wenn das Tupel in der Liste fehlt, und als „False“, wenn es vorhanden ist, wie in den folgenden Beispielen gezeigt:

>>> 3 not in [2, 3, 4]
False
>>> 3 not in [4, 5, 6]
True
Nach dem Login kopieren

Tupel vs. Listen:

Der Fehler liegt wahrscheinlich an einer anderen Stelle im Code. Im Gegensatz zu Listen sind Tupel in Python unveränderlich. Dies bedeutet, dass ein einmal erstelltes Tupel nicht mehr geändert werden kann. Wenn Sie versuchen, es zu ändern, wird ein TypeError ausgelöst, der den Betrieb des „Not In“-Operators stören kann.

Lösung:

Um jegliches Potenzial zu vermeiden Stellen Sie bei Problemen sicher, dass die Tupel in der Liste und das, auf dessen Abwesenheit Sie prüfen, im gesamten Code unverändert bleiben. Wenn sie geändert werden müssen, sollten Sie die Verwendung von Listen anstelle von Tupeln in Betracht ziehen.

Das obige ist der detaillierte Inhalt vonWarum funktioniert „nicht in' mit Tupeln in Python nicht wie erwartet?. 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