On Thursday, September 26, 2013 4:54:22 AM UTC+5:30, Arturo B wrote: > So I know what recursion is, but I don't know how is > > flatten(i) > > evaluated, what value does it returns?
When you are a noob, who do you ask? The gurus. When you are a guru who do you ask? The computer! And its really quite easy to ask the computer directly. Here's your code with a extra prints def flatten(l): print ("Received: %s" % 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) print ("Returning: %s" % ret) return ret Now run it with a couple of different inputs (not neglecting the trivial cases) and see if it does not self-explain. If still confusing, come back and ask! -- https://mail.python.org/mailman/listinfo/python-list