Russell
Russell

Reputation: 2822

recurse over a list

I'm trying to recurse over a list (eg. [True, [[True, False], [False, [False, True]]]]) using Python. I know that the list length will always be 2 and both values will be boolean. I'd like to take those values and substitute them back into the list until there are only 2 values left (or 1 boolean value). Any help would be much appreciated.

Upvotes: 2

Views: 211

Answers (2)

Jon W
Jon W

Reputation: 15826

say your list is l

def print_list(list):
   t = type(list())
   for item in list:
      if type(item) is t:
         print_list(item)
      else:
         print item
 print_list(l)

Something simple like that would print every item in your list.

Upvotes: 0

Mark Byers
Mark Byers

Reputation: 839254

You haven't said how to combine the two parts, so I'm assuming or but you could use another function instead.

l = [True, [[True, False], [False, [False, True]]]]

def foo(x):
    if isinstance(x, list):
        return foo(x[0]) or foo(x[1])
    else:
        return x

print foo(l)

Upvotes: 4

Related Questions