Ich bin unklar über den Unterschied zwischen der Syntax !=
und is not
. Sie scheinen dasselbe zu tun:
Aber wenn ich is not
in einem Listenverständnis verwende, erzeugt es ein anderes Ergebnis als wenn ich !=
verwende.
Warum wurde o
in die erste Liste aufgenommen, aber nicht in die zweite Liste?
Ich zitiere nur aus Referenz,
is
prüft, ob die Operanden identisch sind und sich wahrscheinlich auf dasselbe Objekt beziehen. wo wie !=
auf den Wert testet.
Dies ist eine unbestimmte Schleife, weil das Objekt s niemals mit einer Objektreferenz von [] übereinstimmt, sondern sich auf ein völlig anderes Objekt bezieht. Wenn die Bedingung durch s != []
ersetzt wird, wird die Schleife eindeutig, da hier Werte verglichen werden, wenn alle Werte in s ausgelassen werden, bleibt eine leere Liste übrig.
Ich möchte hinzufügen, dass sie definitiv nicht das Gleiche machen. Ich würde verwenden! =. Zum Beispiel, wenn Sie eine Unicode-Zeichenfolge haben ....
%Vor%Mit! = führt Python im Prinzip eine implizite Konvertierung von str () nach unicode () durch und vergleicht sie, während es mit nicht übereinstimmt, wenn es genau dieselbe Instanz ist.
Tags und Links python syntax list-comprehension