1
我写这样的功能:问题与递归调用
def append_to_all(L, v):
'''Append value v, which may be of any type, to all the nested lists in L.
L is a list, and may contain other lists.'''
if len(L) == 0:
return L.append(v)
elif isinstance(L[0], list):
L[0].append(v)
return append_to_all(L[1:], v)
else:
return append_to_all(L[1:], v)
if __name__ == '__main__':
L = [1, 2, [3]]
append_to_all(L, 'a')
print L # should return [1, 2, [3, 'a'], 'a']
该函数返回[1,2,[3, '一个']]代替[1,2,[3, 'A'], '一个']。我尝试过调试,但无法找出错误。我看起来当len(L)== 0函数被调用时,'a'被追加到空列表中,但不是全局L.
我该如何解决这个问题?
谢谢!
啊!得到它了!谢谢! – isal 2012-03-13 05:00:20