list,
tuple等等确实确实在进行相等检查之前进行了身份检查,并且这种行为是由这些不变量引起的:
assert a in [a]assert a in (a,)assert [a].count(a) == 1for a in container: assert a in container # this should ALWAYS be true
不幸的是,
dicts,
sets和朋友通过哈希操作,因此,如果您将它们弄乱,则确实可以有效地破坏它们。
有关某些历史记录,请参见此问题和此问题。


![使对象x使得“ [x]中的x”返回False 使对象x使得“ [x]中的x”返回False](http://www.mshxw.com/aiimages/31/611049.png)
