rickhg12hs <rickhg1...@gmail.com> writes: > Would a kind soul explain something basic to a python noob? > > Why doesn't this function always return a list? > > def recur_trace(x,y): > print x,y > if not x: > return y > recur_trace(x[1:], y + [x[0]]) > > Here are a couple sample runs. > >>>> print(recur_trace([],[1,2,3])) > [] [1,2,3] > [1,2,3] > > So that worked okay and returned the list [1,2,3]. > >>>> print(recur_trace([9,8],[1,2,3])) > [9,8] [1,2,3] > [8] [1,2,3,9] > [] [1,2,3,9,8] > None > > No list is returned here. Why? > [Using Python 2.6.2]
Without trying it out I'd guess you want a "return" in your last line. (If python falls out of a function without hitting an explicit return then None is returned by default.) -- http://mail.python.org/mailman/listinfo/python-list