443,660 Members | 1,102 Online
Need help? Post your question and get tips & solutions from a community of 443,660 IT Pros & Developers. It's quick & easy.

# bags in collections - PEP 320

 P: n/a Dear All, I have just read PEP-320 and noticed the following comments regarding the "collections" package: ... - ? bag (only if use cases established) ... I would like to argue for such a use case. We at designtheory.org are working on a (maths / stats / comp. sci.) project in the area of Design Theory. Design theory intersects with many fields, to mention a few: combinatorics, graph theory, finite geometry, coding theory, and the design of statistical experiments (from which then name of the field comes). Most of our software development will be in Python, although the released python software so far is very modest. To show why bags are important for us and, in general, for discrete mathematicians, here is the definition of the most important type of designs. A binary block design is a multiset (that is a 'bag') of subsets of a 'base' set; the elements of the base set are called 'points' and its subsets are called 'blocks'. (Personally, I prefer the name bag but most mathematicians use multiset.) A non-binary block design is one whose blocks can also be multisets. The computations we are facing are very much combinatorial in nature so we are happy to see that Sets became a builtin and, of course, would like to see a C implementation for bags too. Our pydesign package (will) heavily use C extensions. So far we use numarray to compute statistical properties of designs, but many more combinatorial functionalities will be implemented in C. In particular, we are planning to implement a basic permutation group package whose core will eventually be a C extension. We would like to deal with automorphism groups and isomorphisms of designs on at least a basic level within the pydesign package without having to resort to specialized mathematical packages like GAP. These functionalities can be useful not only for design theorist, but for anybody using Python to deal with combinatorial structures, like graphs for example. In all of these areas the use of multisets (bags) is pervasive. Please, implement it -- so we don't have to :-) For more details on our project, please visit http://designtheory.org/ -- , Peter Dobcsanyi Jul 18 '05 #1