在python中,值x
并不总是约束为等于自身。最著名的例子是:
>>> x = float("NaN")
>>> x == x
False
现在考虑一个只有一个项目的列表。我们可以认为两个这样的列表是相等的,只要它们所包含的项目是相等的。例如:
>>> ["hello"] == ["hello"]
True
但NaN
的情况似乎并非如此:
>>> x = float("NaN")
>>> x == x
False
>>> [x] == [x]
True
所以这些“不相等”的项目列表是“相等”的。但只是有时候。。。特别是:
NaN
的相同实例组成的两个列表被认为是相等的;而NaN
的不同实例组成的两个独立列表不相等观察:
>>> x = float("NaN")
>>> [x] == [x]
True
>>> [x] == [float("NaN")]
False
这种一般行为也适用于其他集合类型,如元组和集合。这有一个很好的理由吗?你知道吗
根据the docs
相关问题 更多 >
编程相关推荐