Nice! Thank you very much Anand.But, I still don't know what is happening.Please point me to a resource to understand what is happening.
** Program ** def flat_it(values, result=list()): for v in values: if isinstance(v, list): flat_it(v, result) else: result.append(v) return result x = [[1, 2, [3, 7]], 4] print('Input: {0}'.format(x)) print('Output 1: {0}'.format(flat_it(x))) print('Output 2: {0}'.format(flat_it(x))) print('Output 3: {0}'.format(flat_it(x, list()))) ** Output ** Input: [[1, 2, [3, 7]], 4] Output 1: [1, 2, 3, 7, 4] Output 2: [1, 2, 3, 7, 4, 1, 2, 3, 7, 4] Output 3: [1, 2, 3, 7, 4] Thank you, Bhargav. On Friday, October 3, 2014 8:48 PM, Anand Chitipothu <anandol...@gmail.com> wrote: On Fri, Oct 3, 2014 at 8:26 PM, Bhargav Kowshik <bhargav.kows...@yahoo.com.dmarc.invalid> wrote: We could use what Anand talked about at Pycon India about handling the headers in first row of a CSV.In this scenario, instead of default for result being None and checking if None everytime, we could have the default value an empty list. def flat_it(values, result=list()): for v in values: if isinstance(v, list): flat_it(v, result) else: result.append(v) return result x = [[1, 2, [3, 4, 5, 6, 7]], 4] print x print flat_it(x) Thats a pitfall! Try calling flat_it once again and see what you get. Anand _______________________________________________ BangPypers mailing list BangPypers@python.org https://mail.python.org/mailman/listinfo/bangpypers