2013-12-09 1 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

Измените свой цикл. Вы не делаете ничего с рекурсивным вызовом.

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) 

 Смежные вопросы

  • Нет связанных вопросов^_^