为什么在Python中{1} == Frozenset({1})?

时间:2018-07-18 16:52:28

标签: python

我发现在Python中{1} == frozenset({1})的值为True很奇怪。 setfrozenset是不同的对象类型,我看不到其他可迭代对象类型之间的相似性(例如{1} == (1,)的值为False)。为什么集合会发生这种现象?还有其他具有类似行为的可迭代对象类型吗?

1 个答案:

答案 0 :(得分:7)

按照documentation python2documentation python3

  

根据以下条件将set的实例与frozenset的实例进行比较   他们的成员。例如,“ set('abc') == frozenset('abc')”返回   True

和python3文档中:

  

设置和冻结设置支持集都可以设置比较。当且仅当每个集合的每个元素都包含在另一个集合中(每个元素是另一个子集)时,两个集合才相等。当且仅当第一集合是第二集合的适当子集(是子集,但不相等)时,一个集合小于另一个集合。当且仅当第一个集合是第二个集合的适当超集(是一个超集,但不相等)时,一个集合才大于另一个集合。