0
我需要將int插入到排序列表中。將int插入到排序後的多維列表中
這是我走到這一步:
def insert_in_list(x, tree, index=0):
if not tree:
return tree
elif x < tree[index]:
tree.insert(index, x)
return tree
else:
return insert_in_list(x, tree, index+1)
這是工作的,例如所有的一維列表,[1,5,10]。但是,我需要它在包含附加列表的任何列表上工作,例如:[1,[5,7 [8,9,10]] 18,22]。
嘗試這樣做:
def insert_in_list(x, tree, index=0):
if not tree:
return x
elif isinstance(tree[0], list):
return [insert_in_list(x, tree[0])] + insert_in_list(x, tree[1:])
elif x < tree[index]:
tree.insert(index, x)
return tree
else:
return insert_in_list(x, tree, index+1)
然而,insert_in_list(4,[2,3,6],8,10]))返回[[[[2,3,4,6]]] ,4,8,10]。所以遞歸不會停止插入後第一4.幫助我出
如何對列表進行排序?在'[0,1,3,[2,7,8],6,11]'中插入值'4'的位置?你難道不會誇大你的名單嗎? – mquantin
這是在學校任務。所有提供的列表已經排序,從左到右依次遞增。所以你的例子是無關緊要的。但我必須返回列表「unflattened」! –
如果回答了您的問題,請檢查它是否有效,否則請告訴我現在是什麼問題。 – mquantin