Wenn numpy.any()
True
zurückgibt, schlägt der Vergleich mit is True
fehl, aber mit == True
funktioniert. Weiß jemand warum?numpy.any() gibt True zurück, aber "ist True" Vergleich fehlgeschlagen
Ein minimales Beispiel
from __future__ import print_function
import numpy
a = numpy.array([True])
if a.any() == True:
print('== works')
if a.any() is True:
print('is works')
Der Ausgang dieses Codes ist gerade == works
.
Warum verwenden Sie 'ist' für diesen Vergleich überhaupt? [In diesem Zusammenhang ist == 'der semantisch korrekte Vergleich] (https://stackoverflow.com/questions/132988/is-there-a-difference-between-and-is-in-python) – CoryKramer
Aus dem gleichen Grund '1 == 1.0' ist' True' und '1 ist 1.0' ist' False'. 1 ist eine Ganzzahl, 1.0 ist ein Gleitkommawert. Zwei Dinge können gleichwertig sein, während sie unterschiedliche zugrunde liegende Strukturen haben. –