基本上,我需要编写一个递归函数,它接受一个字符串列表,然后返回一个字符串的列表,每个字符串中的每个字符都重复/加倍。
例如,doubleStringList([I','love','overflow'](将返回[会,会,会]。
我决定把它分成两个递归函数。我已经做了一个函数,它返回带有双字符的字符串:
def doubleCharacter(seq):
if len(seq) == 0:
return seq
else:
return (seq[0] * 2) + doubleCharacter(seq[1:])
例如,输入doubleCharacter("overflow"(将返回"oovvierffllooww">
我正在尝试创建第二个递归函数,该函数使用除字符串列表之外的第一个作为参数,而不是单个字符串。例如:
def doubleStringList(sList):
if len(sList) == 0:
return sList
else:
return doubleCharacter(sList[0]) + doubleStringList(sList[1:])
理论上,如果我输入了doubleStringList(["overflow","is","great"](,它应该返回["oovvierffllooww","iiss","ggrreeaatt"]。如果有人能帮我弄清楚这个代码,我将不胜感激。
错误消息提供了一条重要线索:
TypeError: can only concatenate str (not "list") to str
所以,最后一行应该是
return [doubleCharacter(sList[0])] + doubleStringList(sList[1:])