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