Python 3.x 创建一个包含字符串s的Python列表,重复n次。使用递归

Python 3.x 创建一个包含字符串s的Python列表,重复n次。使用递归,python-3.x,recursion,Python 3.x,Recursion,这是一个可以接受的递归函数吗?如果不是,你能给我展示一个更好、正确的方法吗?提前谢谢 输出应如下示例所示: 列表(3,'Dream')中的字符串应返回列表['Dream','Dream','Dream']递归函数应自行调用,并至少采用以下一般形式,将根据您尝试执行的操作而改变 def strings_in_a_list(n, s): """ ---------------------------- Creates a Python list with a string,

这是一个可以接受的递归函数吗?如果不是,你能给我展示一个更好、正确的方法吗?提前谢谢

输出应如下示例所示:

列表(3,'Dream')中的字符串应返回列表['Dream','Dream','Dream']

递归函数应自行调用,并至少采用以下一般形式,将根据您尝试执行的操作而改变

def strings_in_a_list(n, s):
    """
    ----------------------------
    Creates a Python list with a string, s, repeated n times. Uses recursion.
    Use: list = strings_in_a_list (n, s)
    -----------------------------
    Preconditions:
        n - a nonnegative integer (int)
        s - a string (str)
    Postconditions:   
        returns
        l - a list with n copies of the string s (list of string)
    -----------------------------
    """
    l = [] 
    l.append(s)
    if len(l) != n:
        l = l * n
    return l
这会满足你的要求。终止条件是当n等于0时,返回一个空列表。否则,
l
等于函数调用的结果,并在返回之前追加
s

if (terminate condition):
    return (final value)
else:
    return function( x - 1 )

如果你能让你的程序更具可读性会更好吗。在每行的开头添加4个空格。如果将
追加到递归调用返回的列表中,而不是进行字符串串联,则可以避免运行时间
O(N**2)
:;L.附加(s);返回L< /代码>谢谢,我正处于测试的中间,即将更新。由于OP问题使用列表,我想最好使用列表提供答案。非常感谢,这真的很有帮助
def strings_in_a_list(n, s):
    if n == 0:
        return []
    else:
        l = strings_in_a_list(n - 1, s)
        l.append(s)
        return l