[Chicago] Resolving lists within lists within lists within .....

Lewit, Douglas d-lewit at neiu.edu
Mon Feb 15 17:12:20 EST 2016


Hi everyone,

Well it's President's Day and I've got the day off!  Hooray!!!  Finally
some time to just relax and mess around.  So I'm at my computer playing
around with Python and wondering how to resolve the issue of multiple lists
embedded within other lists.  I came up with two functions that I think
solve the problem.  But I was wondering if Guido or someone else added a
builtin function or method that does this automatically for the
programmer.  Or is there an easier way?  Okay.... thanks.  ( In case you're
wondering why I called the function "flatten" it's because I know from
experience that Wolfram Mathematica and Ocaml have these "flatten"
functions.  I think Ruby has something similar, but I haven't played with
Ruby in a while so I'm not really sure. )  The try: except block is
important because you can't subscript non-list data structures in Python.
The IndexError is what you get when you try to index an empty list.  So I
****think**** my try: except block covers most commonly encountered
exceptions when working with lists embedded within other lists.

Best,

Douglas.

def flatten(lst):
if lst == [ ]:
return lst
else:
try:
return [lst[0][0]] + flatten(lst[0][1:] + lst[1:])
except TypeError:
return [lst[0]] + flatten(lst[1:])
except IndexError:
return flatten(lst[1:])

def flattenAgain(lst):
newList = lst[:]
while newList != flatten(newList):
newList = flatten(newList)
return newList
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/chicago/attachments/20160215/91ed5061/attachment.html>


More information about the Chicago mailing list