John Posner wrote:
Shane Geiger wrote:
   if type(el) == list or type(el) is tuple:
A tiny improvement:

       if type(el) in (list, tuple):

or (even better)
    if isinstance(el, (list, tuple))

However, it is my contention that you shouldn't be flattening by type --
you should know where, explicitly to flatten.  If I have 3-D points as
triples, a tree of points would, by this code, get flattened into a
a list of numbers.   If, however, I create a class with the same
elements, but a method or two, suddenly flatten will produce a list
of points.  It is my contention that the tree abstraction should be
responsible for producing its leaves, rather than a blunderbus that
doesn't know where one container abstraction ends, and its contents
begin.  In other words, I'd like to see thigs like "flatten one layer."

--Scott David Daniels
scott.dani...@acm.org
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to