2013-12-09 68 views
0

我無法讓函數在docstring中工作。 當我Python:加入嵌套列表中的項目

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

改變你的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)