Py2.3: Feedback on Sets (fwd)

Raymond Hettinger vze4rx4y at
Mon Aug 18 00:39:22 CEST 2003

[Alex Martelli]
> |IMHO, one 'real' issue with this function is that it behaves strangely
> |(to me) when iterable has duplicated elements
> | data = list(iterable) -->  data = Set(iterable)

[David Mertz]
> Yeah :-).  Which points out that I should have actually READ Raymond's
> function, rather than just cut-and-paste it.  This seems to point out
> that even the Python developers are able to make mistakes in
> implementing powerset().  Which again suggests a module function
> (implemented correctly) is worth having.

It wasn't a mistake.

I do prefer Alex's improvement because it has a weaker precondition,
but the basic code and generation method was dead-on.

The real issue with adding a module function or Set method for
powerset is the lack of compelling use cases; without those, it is
simply a cute example for the docs or an ASPN recipe.

Also, if Tim were to chime-in, I think he would abstract the
problem and say that the algorithm falls in the domain of
combinatorics (for which he has written a module) and that
powersets are just a specific case of transforming a collection
of items into a collection of all possible sub-collections.

Raymond Hettinger

More information about the Python-list mailing list