Python:在嵌套列表中连接项目

时间:2013-12-09 00:39:55

标签: python-3.x nested-lists

我无法像在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)

1 个答案:

答案 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)