使用字符串s创建一个Python列表,重复n次。使用递归

时间:2016-02-27 22:37:20

标签: python-3.x recursion

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

这是否是一个可接受的递归函数,如果没有,你能告诉我一个更好,更正确的方法吗?提前谢谢。

输出应该是这样的例子:
strings_in_a_list(3,' Dream')应该返回列表[' Dream',' Dream',' Dream']

1 个答案:

答案 0 :(得分:1)

递归函数应该调用自身,并且至少采用以下的一般形式,将根据您尝试做的事情而改变。

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

这将做你想要的。终止条件是当n等于0时,返回空列表。否则l等于函数调用的结果,并且在返回之前附加s

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