
On Wed, Apr 14, 2010 at 10:02 PM, C. Titus Brown <ctb@msu.edu> wrote:
Hi all,
this seems like the right forum to ask -- is there a reason why Python doesn't have a 'bag' builtin type, e.g.
b = bag(foo=bar, baz=bif)
assert b.foo == bar assert b.bz == bif
?
It's easy to write and there's a great discussion over at the cookbook:
http://code.activestate.com/recipes/259174-bag-collection-class/
Inquiring minds want to know!
There was some discussion: http://mail.python.org/pipermail/python-ideas/2009-July/005219.html http://www.mail-archive.com/python-list@python.org/msg229512.html ...the outcome of which was the Counter class: http://docs.python.org/dev/py3k/library/collections.html#collections.Counter It's /somewhat/ like a bag, except elements can have negative multiplicity and the default iterator yields each element exactly once, regardless of its multiplicity (yeah, I know, doesn't quite make sense). There have been attempts to also add a proper bag/multiset type, but the use cases for bags are relatively few and collections.Counter is usually close enough that it can be used in such cases, although not as elegantly. Cheers, Chris -- http://blog.rebertia.com