Python recursion, how come my function doesn't work? -


i trying write python 3 recursive function tell me if integer in nested list. not sure how can make code return true if finds in list, , false if doesn't find in list. when print result of loop, bunch of

false false false false true false false false 

etc. but, returns false because last call false, though want return true. how can fix this?

here code:

def nestedlistcontains(nl, target):         if( isinstance(nl, int) ):         return nl          in range(0, len(nl)):        return ( nestedlistcontains(nl[i], target) == target )      return false 

and here how i'm calling it

print(nestedlistcontains([[3], [4,5,7], [[[8]]]], 8)) 

edit: seems working me, seems rather ghetto:

def nestedlistcontains(nl, target):         if( isinstance(nl, int) ):         if( nl == target ):             return 1         return 0      x = 0      n in nl:         x += nestedlistcontains(n, target) == 1              return x != 0 

you return result regardless of whether it's true or not. this:

def nestedlistcontains(nl, target):         if isinstance(nl, int):         return nl == target      n in nl:        result = nestedlistcontains(n, target)         if result:            return result      return false 

Comments

Popular posts from this blog

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -

node.js - Bad Request - node js ajax post -