Understanding how is a function evaluated using recursion

Arturo B a7xrturodev at gmail.com
Wed Sep 25 19:24:22 EDT 2013


Hi, I'm doing Python exercises and I need to write a function to flat nested lists
as this one: 

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

To the result:

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

So I searched for example code and I found this one that uses recursion (that I don't understand):

def flatten(l):
    ret = []
    for i in l:
        if isinstance(i, list) or isinstance(i, tuple):
            ret.extend(flatten(i)) #How is flatten(i) evaluated?
        else:
            ret.append(i)
    return ret

So I know what recursion is, but I don't know how is 

                       flatten(i)
 
evaluated, what value does it returns?

Thank you




More information about the Python-list mailing list