我无法像在docstring中那样使用该函数。 当我输入
nested_join(' ', ['one', ['two', 'three'], 'four'])
我得到'one four'
而不是’one two three four’
。
有人可以告诉我如何解决它吗?
由于
def nested_join(s: str, L: list) -> str:
"""Return join of nested list of strings L with separator string s
>>> nested_join(’ ’, [])
>>> nested_join(’ ’, [’one’])
’one’
>>> nested_join(’', [’one’, ’two’])
’one two’
>>> nested_join(' ', ['one', ['two', 'three'], 'four'])
’one two three four’
"""
res = []
for i in range(len(L)):
if isinstance(L[i], str):
res.append(L[i])
else:
nested_join(s, L[i])
return str.join(s, res)
答案 0 :(得分:1)
更改你的for循环。你没有对递归调用做任何事情。
def nested_join(s, L):
res = []
for i in range(len(L)):
if isinstance(L[i], str):
res.append(L[i])
else:
res.append(nested_join(s, L[i]))
return str.join(s, res)