为什么Python集合计数器不支持子集&超集比较?

时间:2017-08-07 22:41:31

标签: python comparator multiset

此问题与:Python Counter Comparison as Bag-type

有关

在Python 3中,比较两个计数器将导致" TypeError:无法解决的类型:Counter()>计数器()&#34 ;.

对于Python中的集合,我们可以执行以下操作:set1< set2,set1< = set2;如果我们将yje Counter类型视为multiset,那么为什么这些比较不是在collections模块中构建的呢?是否有任何设计文档/ PEP提案指定在Python 3中不构建Counter / multiset类型的比较的任何原因(即,将这些比较器从Python 2移除到Python 3)?

1 个答案:

答案 0 :(得分:1)

计数器不是固定的,它们是决定性的。您无法比较dicts:

>>> {1:1,2:2} < {1:1,2:2,3:3}
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    {1:1,2:2}<{1:1,2:2,3:3}
TypeError: unorderable types: dict() < dict()