Velocity Reviews > walking a list

# walking a list

mr.happy
Guest
Posts: n/a

 04-23-2004
Hi all,

I have this little question, basicly i solved it already by writing a
little bit of code for it (using recursion), but still i am wondering if
there is a shorter ways to do things (like 1 or 2 commands).

the problem is this, imagine i have a list:

list = [1, 2, [3, 2], 5, [6, 5, 4]]

if i print out this list using 'for element in list: print element,'
it will show me the following:

1
2
[3, 2]
5
[6, 5, 4]

but what i really want to show is:

1
2
3
2
5
6
5
4

What i want to do is run through the list and when i get back a list run
through that list as well (and if that list contains a list run through it
again etc.).

all suggestions are welcome, i'm ready to learn from the pro's

--
One monk said to the other, "The fish has flopped out of the net! How will it
live?" The other said, "When you have gotten out of the net, I'll tell you."

Jeff Epler
Guest
Posts: n/a

 04-23-2004
def print_or_recurse(l):
for i in l:
if isinstance(i, list): print_or_recurse(i)
else: print i

print_or_recurse([1,2,[3,2],5,[6,5,4]])

Jeff

mr.happy
Guest
Posts: n/a

 04-24-2004
On Fri, 23 Apr 2004 13:21:43 -0500, Jeff Epler wrote:

> if isinstance(i, list): print_or_recurse(i)

great! thanks, i didn't know 'isinstance' existed.
what i did was the following:

if 'list' in str(type(list)):

it worked as well

--
One monk said to the other, "The fish has flopped out of the net! How will it
live?" The other said, "When you have gotten out of the net, I'll tell you."