My goal was very simply to check whether it was possible to remove a multi-set of elements from another, without any counts going below 0 (as should be the case for "natural" counters).
Antony

2014-11-23 7:40 GMT-08:00 Ethan Furman <ethan@stoneleaf.us>:
On 11/22/2014 09:33 PM, Nick Coghlan wrote:
>
> With the existing Counter-as-multiset features already offering some
> potential for confusion, and the potential for further confusing
> interactions between additional multiset features and Counter's
> support for non-integer values, zero values (distinct from keys being
> missing entirely) and negative values, there may be scope for a
> separate true multiset API that draws more heavily on the set API
> design than the dict API design.
>
> A dedicated multiset API would potentially be able to avoid the
> confusing aspects of Counters-as-multisets by only allowing
> non-negative integer values. Is there sufficient value in such an API
> to justify adding it? Or would it just create confusion as folks tried
> to decide between using Counter or using the new multiset/bag
> container for their algorithm?
>
> That's an open question, but at the very least, it's worth considering
> as an alternative to further elaborating on an already confusing
> aspect of the collections.Counter design. There's at least one such
> example of a bag API already available on PyPI:
> https://pypi.python.org/pypi/data-structures/0.1.4#bag (you need
> "-Counter" in a Google search to find that, as most current hits
> describe the use of Counter as a multiset, rather than using a
> dedicated container type)

I have also wondered about the feasibility of separating out the multiset features into a distinct type.  Seems like
that would avoid a bunch of confusion.

--
~Ethan~


_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/