Für die integrierten Python-Container ( list
, tuple
usw.) entspricht der in
-Operator any(y == item for item in container)
mit der Einschränkung, dass die frühere Methode schneller (und hübscher) ist:
Gibt es ein Äquivalent zu any(y is item for item in container)
? Das heißt, ein Test, der is
anstelle von ==
verwendet?
is
wird gerade nicht benötigt, um zu rechtfertigen, dass eine C-optimierte Methode beibehalten werden muss und der Python-API Verwirrung zugefügt wird.
Der in
Test für Listen und Tupel führt eine vollständige Suche ähnlich wie any
durch, wenn auch in C, btw. In Mengen verwendet der Test jedoch den effizienten Speicheralgorithmus, der dem Container zugrunde liegt, und die Suche benötigt im erwarteten Fall konstante Zeit. Für Sätze und Mappings sollten Schlüssel einen stabilen Hash haben, was in den meisten Fällen bedeutet, dass is
wirklich nicht benötigt wird.
Die korrekte Schreibweise lautet also:
%Vor%Tags und Links python identity containment