我正在尝试以下递归函数来展开可能包含子列表项的句子列表:
def myflatten(slist, outlist=[]):
for sl in slist:
if type(sl) == list:
outlist.append(myflatten(sl, outlist))
else:
outlist.append(sl)
return outlist
print("myflatten list=", myflatten([1,[5,6,7],3,4,[7,8,9]]))
输出:
myflatten list= [1, 5, 6, 7, [...], 3, 4, 7, 8, 9, [...]]
为什么每个子列表都会显示
[...]
,如何避免这种情况?感谢您的帮助。
outlist
的default
引用。例如,如果您调用myflatten([1])
,然后调用myflatten([2])
,您将得到[1, 2]
。 - Matias Cicero