多重集的实现。
multiset的Python项目详细描述
这个包为python提供了一个multiset实现。
概述
multiset类似于内置的set,但它允许元素多次出现。 它是一个无序的元素集合,必须像在set中一样可以散列。 它支持与set相同的方法和操作,例如成员资格测试、并集、交集和 (对称)差:
>>> set1 = Multiset('aab') >>> set2 = Multiset('abc') >>> sorted(set1 | set2) ['a', 'a', 'b', 'c']
多集可以与sets:
结合使用>>> Multiset('aab') >= {'a', 'b'} True
多集是可变的:
>>> set1.update('bc') >>> sorted(set1) ['a', 'a', 'b', 'b', 'c']
有一个类似于frozenset的不可变版本,它也是散列的:
>>> set1 = FrozenMultiset('abc') >>> set2 = FrozenMultiset('abc') >>> hash(set1) == hash(set2) True >>> set1 is set2 False
该实现基于一个dict,它将元素映射到multiset中的多重性。 因此,支持一些字典操作。
与标准库中的collections.Counter不同,它对set有适当的支持 只允许正数。此外,多重性为零的元素将自动 从多集中删除。
许可证
根据MIT许可证授权。