2017-09-26 115 views
0

下面的代碼片段遞歸地將嵌套列表和元素展平到新列表中,但無法將所有元素附加到列表中。將嵌套列表元素附加到新列表中

預期輸出:[1,2,4,5,6,7,5,8]

我的輸出:[1,2,8]

def foo(l): 
    result = [] 
    for i in l: 
    if type(i)==list: 
     foo(i) 
    else: 
     result.append(i) 
return result 


input_list = [1,2,[4,5,[6,7],5],8] 

print (foo(input_list)) 

回答

5

你在每個呼叫中​​重置result。將它傳遞給函數。

def foo(l,result): 
    for i in l: 
    if isinstance(i,list): 
    foo(i,result) 
    else: 
    result.append(i) 
    return result 


input_list = [1,2,[4,5,[6,7],5],8] 
result=[] 
print (foo(input_list,result)) 

輸出:

[1, 2, 4, 5, 6, 7, 5, 8] 
+0

Upvoted;我還建議使用'isinstance'來檢查類型 – Bahrom

+0

@Bahrom:是的。我編輯了答案。 – batMan

+0

謝謝你的工作.... :) – Ravi

相關問題