Help- Simple recursive function to build a list
Roy Smith
roy at panix.com
Tue Mar 1 21:57:41 EST 2005
In article <mailman.3222.1109731598.22381.python-list at python.org>,
actuary77 <actuary77 at elemental-systems.com> wrote:
> I am trying to write simple recursive function to build a list:
>
>
> def rec(n,alist=[]):
> _nl=alist[:]
> print n,_nl
> if n == 0:
> print n,_nl
> return _nl
> else:
> _nl=_nl+[n]
> rec(n-1,_nl)
>
> _nl=[]
> _nl=rec(4)
> print _nl
>
> ### shouldn't this work?
>
> _nl=rec(4)
>
>
>
>
> The output is:
> 4 []
> 3 [4]
> 2 [4, 3]
> 1 [4, 3, 2]
> 0 [4, 3, 2, 1]
> 0 [4, 3, 2, 1]
> None
> None
>
>
> Question:
> ============
> Why isn't the function returning a list?
> Why is function returning None?
I'm not 100% sure what you're trying to do here, but I suspect you left a
"return" out of the else block, i.e. "return rec(n-1, _nl)". That would
certainly explain why it's returning None.
What problem are you trying to solve, or are you just experimenting with
recursion?
More information about the Python-list
mailing list